【理解计算机视觉损失函数】《Understanding Loss Functions in Computer Vision!》 https://medium.com/ml-cheat-sheet/winning-at-loss-functions-2-important-loss-functions-in-computer-vision-b2b9d293e15a
【理解卷积网络目前存在的缺陷】《Understanding the limits of CNNs, one of AI’s greatest achievements》 https://bdtechtalks.com/2020/03/02/geoffrey-hinton-convnets-cnn-limits/
你有特斯拉,我有树莓派,纯手工打造车载车牌识别检测系统,家用车秒变智能车 https://mp.weixin.qq.com/s/mV-S1yqMtaZg2-YWsIUSBA
【Scikit-Learn模型可视化】《Visualize Scikit Models | visualize-sklearn | W&B》 https://app.wandb.ai/lavanyashukla/visualize-sklearn/reports/Visualize-Scikit-Models--Vmlldzo0ODIzNg
【Scikit-Learn机器学习培训课程资料】’Scikit-Learn tutorial' https://github.com/INRIA/scikit-learn-mooc
【用Jupyter远程教学:技巧、资源与最佳实践】《Teaching remotely with Jupyter: tips, resources, and best-practices》 https://discourse.jupyter.org/t/teaching-remotely-with-jupyter-tips-resources-and-best-practices/3683
机器学习工程实战点滴:十个实用的Python编程练习 https://medium.com/modern-nlp/10-great-ml-practices-for-python-developers-b089eefc18fc
【深度学习的数学】《Deep Learning's mathematics》 https://medium.com/@ismail.mebsout.pro/deep-learnings-mathematics-f52b3c4d2576
【写给大家看的机器学习白话介绍】《Machine Learning for Everyone :: In simple words. With real-world examples. Yes, again :: vas3k.com》 https://vas3k.com/blog/machine_learning/
最新版本的OpenCV + OpenVINO的开发配置与演示运行 https://mp.weixin.qq.com/s/3KUjpfm_bZLMceOJu8Ne5g
编程其实是:
- 1% 写代码
- 40% 调试代码
- 15% 喝咖啡休息一下
- 30% Google搜索错误提示
- 9% 跟同事一起盯着屏幕
- 5% 试着从Stack Overflow复制/粘贴解决方案...
麻省理工学院正式免费开放一个 AI 学习网站:aik12-MIT https://aieducation.mit.edu/
机器学习代码完整性自查清单 https://medium.com/paperswithcode/ml-code-completeness-checklist-e9127b168501
神经网络视觉探秘:InceptionV1前5层“漫游” https://distill.pub/2020/circuits/early-vision/
动手学深度学习 https://zh.d2l.ai/chapter_introduction/deep-learning-intro.html
【为写出能更快运行的代码,科学家编程人员必须了解的硬件(CPU&内存)知识(Jupyter Notebook)】 https://github.com/jakobnissen/hardware_introduction
François Chollet:回顾自己的学生时代,有件事让我震惊,那就是从来没学过元思维(meta)。 学校教给我们定理和公式,却从没教给你可以用来解决问题的通用过程和技巧,或者,关于如何更好地学习。我们只能靠自己,去弄清楚这部分是怎么回事。 我们的确是这样做的,但过程混乱、举步维艰。 往往通过重复试错,获得第一手经验,效率极低。 元思维(meta),本质上,是一门科学,是可以被教授的。当然,真正重要的,是学习“如何学习”和“如何解决问题”(甚至是更专业的“如何证明定理”)。 相比之下,学习的内容——具体的知识片段——没那么重要。 我已经忘了学过的所有定理,只有元思维能力者还在。
https://github.com/trekhleb/machine-learning-experiments
https://github.com/Machine-Learning-Tokyo/Interactive_Tools
我认为CS学位可以更好,如果能教他们:
- 如何为开源做贡献
- 了解相关术语,如 敏捷,Scrum,测试驱动开发 等等
- 如何与团队合作
- 现代开发语言
- 软件开发框架
- 如何准备面试
【神经网络的数学】《Mathematics of Neural Networks》 https://www.dropbox.com/s/ec3y4khbk38e29i/NeuralNetworksEN.pdf?dl=0
Naval:写出来是为了更好地学,而不是为了教。
【线性回归基础与应用:用线性回归预测波士顿房价】《Predicting Boston House prices using Linear Regression》 https://towardsdatascience.com/predicting-boston-house-prices-using-linear-regression-3c6107c662e5
Git 常用命令参考手册:该 repo 汇总了一些比较常用的 Git 命令,以便于大家查阅使用 https://github.com/xjh22222228/git-manual
“事必躬亲”新解:作个算法(Be the Algorithm)——要优化算法,须亲自体验算法所做的、以及所面对的点滴细节
Addy Osmani:把你学到的写下来,这会有助于你加深理解。有时候,只有当你试着解释给别人听,才能看清自己的知识盲点。即使没人读你写的东西,也没关系。你已经因为这样做收获了很多。
【写论文画机器学习框图不再纠结:ML Visuals——开源方式组织的标准化机器学习框图要素/模板库】 https://github.com/dair-ai/ml-visuals
收集了共 86 个可供开发者练习参考的项目创意,其中初级项目 34 个、中级 32 个、高级 20 个,每个项目均附有较为详细的项目参考文档。 https://github.com/florinpop17/app-ideas
【深度卷积网络通俗介绍(PyTorch)】《A Layman’s Guide to Deep Convolutional Neural Networks》 https://towardsdatascience.com/a-laymans-guide-to-deep-convolutional-neural-networks-7e937628605f
Catalin Pit:如何学习新的编程技能? 1、看一个教程,跟着老师构建应用。 2、在尽量少的帮助下,重建这些应用。 3、复习学到的概念。 4、用学到的概念创建新应用。
【神经网络结构设计/可视化工具大列表】 https://github.com/ashishpatel26/Tools-to-Design-or-Visualize-Architecture-of-Neural-Network
【用小例子深入浅出机器学习/数学基本概念】 https://github.com/ovysotska/in_simple_english
【计算机视觉最佳实践、代码示例和相关文档】 https://github.com/microsoft/computervision-recipes
你真的懂softmax吗? https://ogunlao.github.io/2020/04/26/you_dont_really_know_softmax.html
Catalin Pit:项目 比 教程 强得多;做 比 看 强得多;主动学习 比 被动学习 强得多。
ConvNetJS 是一个 Javascript 的神经网络实现,自带基于浏览器的 demo https://github.com/karpathy/convnetjs
【手把手从头实现神经网络(w/数学原理)】 https://medium.com/towards-artificial-intelligence/building-neural-networks-from-scratch-with-python-code-and-math-in-detail-i-536fae5d7bbf
【迁移学习让深度学习“零门槛”】《Everyone can use deep learning now》 https://towardsdatascience.com/everyone-can-use-deep-learning-now-8d683f92bce7
https://github.com/dsgiitr/VisualML
https://www.zhihu.com/question/269921460
https://github.com/sladesha/Reflection_Summary
类似 Jupyter Notebook 的交互式笔记本:Starboard。 https://github.com/gzuidhof/starboard-notebook https://starboard.gg/ 通过它,你可以在网页上直接写出可交互、可运行的代码笔记,内置浏览器,零配置,简单易用。并支持应用到个人博客、技术教程、数据可视化、Web Demo 示例、API 文档、机器学习演示、技术报告等多种使用场景上。
XGrad-CAM implementation in Pytorch https://github.com/Fu0511/XGrad-CAM
Best Practices, code samples, and documentation for Computer Vision. https://github.com/microsoft/computervision-recipes
One day workshop for machine learning with scikit-learn https://github.com/amueller/sklearn-one-day
Jupyter Book:用Jupyter Notebooks制作交互式出版质量的文档 https://github.com/executablebooks/jupyter-book https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Fblog.jupyter.org%2Fannouncing-the-new-jupyter-book-cbf7aa8bc72e
Kaggle金牌得主的机器学习教程(泰坦尼克) https://www.kesci.com/home/project/5f69d02471c700003078961b
为什么机器学习算法很难优化(以及如何解决) https://engraved.ghost.io/why-machine-learning-algorithms-are-hard-to-tune/
Animating the Optimization Trajectory of Neural Nets - Create animations for the optimization trajectory of neural nets https://github.com/logancyang/loss-landscape-anim
Minimal implementations/tutorials of deep learning papers with side-by-side notes; including transformers (original, xl, switch, feedback), optimizers(adam, radam, adabelief), gans(dcgan, cyclegan), reinforcement learning (ppo, dqn), capsnet, sketch-rnn, etc https://github.com/lab-ml/nn
A Survey on Understanding, Visualizations, and Explanation of Deep Neural Networks https://arxiv.org/abs/2102.01792
用Unity 3D实现的CNN交互可视化 https://github.com/stefsietz/nn-visualizer
《从头学深度学习》随书代码 https://github.com/SethHWeidman/DLFS_code
visualkeras:Keras/TensorFlow网络架构可视化库 https://github.com/paulgavrikov/visualkeras
Hyperactive:超参优化和元学习工具箱,用于方便快速建立机器/深度学习模型原型 https://github.com/SimonBlanke/Hyperactive
OpenCV with Python in 4 Hours:OpenCV/Python四小时使用教程资料 https://github.com/jasmcaus/opencv-course
https://github.com/bubbliiiing/yolov4-tiny-pytorch
Lyra 2:无需代码的交互可视化创建工具 http://vis.csail.mit.edu/pubs/lyra2 https://vega.github.io/lyra/
François Chollet:对自驱型学生来说,Youtube教授是世界上最好的老师——在所有领域。
Net2Vis:浏览器里的神经网络(结构)可视化器 github.com/viscom-ulm/Net2Vis
github.com/Gautam-J/Machine-Learning
SmallPebble:用Python/NumPy/CuPy从头写的最小化深度学习库 github.com/sradc/SmallPebble
对深度网络来说,“宽”和“深”学到的一样吗? https://ai.googleblog.com/2021/05/do-wide-and-deep-networks-learn-same.html
深度学习几何基础 towardsdatascience.com/geometric-foundations-of-deep-learning-94cdd45b451d
把离散傅立叶变换看做神经网络 https://sidsite.com/posts/fourier-nets/
Keras实例:SimCLR对比预训练半监督图像分类 https://keras.io/examples/vision/semisupervised_simclr/
InteractML:Unity3D交互式机器学习可视化脚本框架 github.com/Interactml/iml-unity
github.com/openvinotoolkit/openvino_notebooks
Santiago:机器学习工程师视角用到的数学比例: • 统计与概率:80% • 线性代数:19% • 微积分:1% 可能对你安排数学基础学习有帮助。
Kaggle的免费Pandas教程 https://www.kaggle.com/learn/pandas
Keras实例:基于迁移学习的关键点检测 https://keras.io/examples/vision/keypoint_detection/
3小时OpenCV教程示例项目集 github.com/murtazahassan/Learn-OpenCV-in-3-hours
Know Your Data:帮助研究人员和产品团队理解数据集的工具,目的是提高数据质量,减少公平性和偏见问题 github.com/PAIR-code/knowyourdata
Deep Learning Visuals:深度学习图集,超过200幅可免费使用的深度学习架构/层示意图 github.com/dvgodoy/dl-visuals
VisualDL:飞桨可视化分析工具,以丰富的图表呈现训练参数变化趋势、模型结构、数据样本、高维数据分布等 github.com/PaddlePaddle/VisualDL
https://www.kaggle.com/datasets
Group-CAM: Group Score-Weighted Visual Explanations for Deep Convolutional Networks github.com/wofmanaf/Group-CAM
3DB: A Framework for Debugging Computer Vision Models github.com/3db/3db
深度学习入门课、资深课、特色课、学术案例、产业实践案例、深度学习知识百科及面试题库 github.com/PaddlePaddle/awesome-DeepLearning
Deep Learning visuals:深度学习图/可视化集锦 #可视化 github.com/The-AI-Summer/deep-learning-visuals
chitra:用于模型构建、可解释AI、数据可视化、API构建和部署的深度学习库 github.com/aniketmaurya/chitra
github.com/deel-ai/xplique
微软在 GitHub 开源了一个技术教程:《人工智能系统》,主要讲解支持人工智能的计算机系统设计。课程分为三大模块: 模块一:AI 基础知识与 AI 系统的全栈概述,深度学习系统的系统性设计和方法学; 模块二:将介绍前沿系统和 AI 交叉的研究领域; 模块三:配套的实验课程,包括最主流的框架、平台和工具,以及一系列的实验项目。 GitHub:github.com/microsoft/AI-System 课程设立的主要目的,是为了帮助本科生与研究生,更好的学习深度学习完整生命周期下的系统设计,寻找和定义有意义的研究问题。进一步提高解决实际问题的能力,而不仅仅是了解工具使用。
搜集了各种算法不同语言的实现,有类似动态规划、排序这样的基础算法,也有类似LR、DNN这样的机器学习算法 https://the-algorithms.com/category/neuralnetwork
康奈尔科技校区(Cornell Tech)开源的机器学习 DIY 教学库:MiniTorch,可帮助工程师更好的了解深度学习系统概念。 为了让大家更好的理解技术原理,该库重新实现了 PyTorch 的 API,注重简单和易读、测试与增量,里面还配套了相关教程与技术代码。 GitHub:github.com/minitorch/minitorch
深度学习和机器学习的线性代数基础(Python) https://pub.towardsai.net/basic-linear-algebra-for-deep-learning-and-machine-learning-ml-python-tutorial-444e23db3e9e
visualization - a collection of visualization function github.com/rentainhe/visualization
免费课程:端到端机器学习 https://end-to-end-machine-learning.teachable.com/p/complete-course-library-full-end-to-end-machine-learning-catalog
免费书新版:深度学习面试指南——数百个完整答案的工作面试题,广泛覆盖AI领域关键主题 400 多页的深度学习面试和考试题(含解答) https://arxiv.org/abs/2201.00650
Awesome-DeepLearning-500FAQ - 深度学习500问,以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述 github.com/shliang0603/Awesome-DeepLearning-500FAQ
ReceptiveFieldAnalysisToolbox:感受野分析工具包 github.com/MLRichter/receptive_field_analysis_toolbox
Zetane Viewer:机器学习模型和内部张量3D可视化工具 github.com/zetane/viewer
Charles Ollion:5年前教深度学习,Jupyter Notebook是主流,有些学生无论干啥都想用Colab在线做。今年的新趋势,是学生们开始用StreamLit、Gradio和HuggingFace为他们的期末项目展示做Demo,不错的方向。
深度学习正则化技术综合指南 towardsdatascience.com/a-comprehensive-guide-of-regularization-techniques-in-deep-learning-c671bb1b2c67
JPEG Sandbox:在浏览器里交互式编辑JPEG图像的单个DCT块 github.com/OmarShehata/jpeg-sandbox
计算机视觉最佳实践、代码示例和相关文档 github.com/microsoft/computervision-recipes
Minimal PyTorch implementation of YOLOv3 https://github.com/eriklindernoren/PyTorch-YOLOv3
Data Science for Beginners:微软10周20堂数据科学课 github.com/microsoft/Data-Science-For-Beginners
Artificial Intelligence for Beginners - A Curriculum:微软的12周24节人工智能入门课程 github.com/microsoft/AI-For-Beginners
The Hugging Face Course:Hugging Face生态(Transformers, Datasets, Tokenizers, and Accelerate等)使用教程 github.com/huggingface/course
ML Notebooks:机器学习Notebooks集
github.com/dair-ai/ML-Notebooks
EasyCV:PyTorch一站式计算机视觉工具箱,聚焦自监督学习、图像分类、度量学习、目标检测等方面 github.com/alibaba/EasyCV
Elements of AI 免费AI入门课程(赫尔辛基大学) https://course.elementsofai.com/ https://buildingai.elementsofai.com/
魏茨曼科学研究院《计算机视觉深度学习:基础和应用》课程 dl4cv.github.io
Best-of Machine Learning with Python,里面收录了一些比较实用的机器学习与 Python 开源项目与工具。 收录项目共计 900 多个,包括数据可视化、自然语言处理、文本与图像数据、Web 爬虫等分类。 github.com/ml-tooling/best-of-ml-python
深度学习架构、模型和技巧集合(TensorFlow/PyTorch) github.com/rasbt/deeplearning-models
《动手学习深度学习》笔记和相关的Jupyter代码 github.com/HIT-UG-Group/DeepLearning-MuLi-Notes
GameShell: 通过玩游戏学习Unix shell命令 github.com/phyver/GameShell
【Andrew NG深度学习专项课程手写笔记】’Andrew NG Notes Collection - This is Andrew NG Coursera Handwritten Notes.' by Ashish Patel GitHub: github.com/ashishpatel26/Andrew-NG-Notes
通过该工具,可以辅助并完成深度学习的各项图像处理工作,快速验证、对比各个图像在不同条件下的执行结果。 GitHub:github.com/Kazuhito00/Image-Processing-Node-Editor
Kaggle机器学习/数据科学/数据可视化/深度学习入门Notebook推荐: Data ScienceTutorial for Beginners Machine Learning Tutorial for Beginners Python Data Visualizations Scikit-Learn ML from Start to Finish TensorFlow deep NN
【十分钟入门MLOps】《MLOps in 10 Minutes》by Alexey Grigorev towardsdatascience.com/mlops-in-10-minutes-165c746a9b8e
从零开始实践深度学习的好代码 【《Grokking Deep Learning(深入深度学习)》随书代码(Jupyter Notebooks)】GitHub: github.com/iamtrask/Grokking-Deep-Learning
“MLU-Explain - Visual explanations of core machine learning concepts” mlu-explain.github.io/
【Teacherbot:面向教师的AI工具,根据提示生成教学相关内容,包括课程大纲、内容摘要、课堂练习等】“Teacherbot - can create anything teachers need” https://teacherbot.io/?invite=ED4LT7
【神经网络的数学】《The Mathematics of Neural Networks - Speaker Deck》 https://speakerdeck.com/gpeyre/the-mathematics-of-neural-networks/
【Visual Blocks:Google的可视化编程框架,可以在无需编程的图形编辑器中创建机器学习(ML)流水线。可以通过连接拖放的ML组件(包括模型、用户输入、处理器和可视化)快速原型化工作流程。Visual Blocks提供了节点图编辑器、预置的ML模型和组件库以及输出展示和比较功能,旨在降低ML多媒体应用的开发门槛、加速工作流,并方便用户分享和发布应用】'Visual Blocks - Visual Blocks for ML is a Google visual programming framework that lets you create ML pipelines in a no-code graph editor. You – and your users – can quickly prototype workflows by connecting drag-and-drop ML components, including models, user inputs, processors, and visualizations.' GitHub: github.com/google/visualblocks
【attention:可视化LLM注意力权重】'attention - visualizing attention for LLM users' Matt Neary GitHub: github.com/mattneary/attention
今天做了一个关于如何做架构设计的分享,其中有个很重要的问题就是如何更好的做技术决策,我针对我们前端团队整理了5条做技术决策的原则。 原则 0: 遵守公认的好的设计原则,比如说:
- DRY - Don't repeat yourself (不要重复自己)
- KISS - Keep it Simple, Silly (让设计尽可能的简单)
- YAGNI - You aren't gonna need it (只做刚刚好的设计,不要过度设计)
- … 其他 原则1: 找出最本源的需求,而不应该局限于当前的技术实现和资源 很多时候我们很容易被表面需求所误导,类似于乔布斯的名言:“如果亨利福特在发明汽车之前去做市场调查,他得到的答案一定是大家想要一辆更快的马车。”,如果我们在做设计和技术决策的时候,没有找出用户的真实需求,很容易就会在错误的方向上狂奔,做很多无用功! 要找出本源的需求,还是需要多问为什么,多和干系人沟通,少考虑技术细节,少被现有的技术所误导或局限。
- 案例:设计部门希望设计系统支持Angular (更多案例参考图一)(https://wx2.sinaimg.cn/mw690/66fd066bgy1gzyz7i952dj21wm10sqra.jpg) 我们设计部门最近希望我们的设计系统提供Angular版本,因为当前只支持React版本。 从这个需求来看,表面是是要我们开发Angular版本,其实如果仔细追问他们到底为什么需要Angular版本,是因为有一个团队还在用Angula,他们希望这个团队能用我们的设计系统,但是人家表示用不了。其实本源的需求是希望有更多的团队用设计系统,而不是要支持Angualr。 那要满足这个团队的这个需求,是不是非要做一个Angular版本不可呢?当然不需要,如果我能提供一个类似于BootStrap的HTML和CSS版本,其实他们一样能用起来,而这么做成本不高,并且别的团队也可以用。 原则2: 聚焦于 “收益”、“成本”和“风险”三者之间的平衡,而不是技术本身 (图二)(https://wx3.sinaimg.cn/mw690/66fd066bgy1gzyzeepl2tj21wn10wn40.jpg) 每一次技术决策,其实本质上就是一次取舍(Trade-Offs) 每一次取舍(Trade-Offs),本质上就是在“收益”、“成本”和“风险”三者之间的平衡 既然每一个决策都涉及到收益成本风险,那么就不能只看收益而无视成本和风险。就像前一个案例中提到的,设计部门考虑的是Angular版本带来的收益,但是他们却忽略了打造一套Angular版本的设计系统所需要的成本,以及可能带来的巨大风险。(图三)(https://wx2.sinaimg.cn/mw690/66fd066bgy1gzyzffq7igj21wz10o7e9.jpg) 所以在做技术决策的时候,理性的考虑一下 决策背后的收益、成本和风险的关系是很必要的,而不是仅靠喜好或者直觉来做决策。 原则3: 选择某个技术背后的生态系统而不是某个技术 这条原则特别适用于前端领域,在前端,各种新技术、框架、工具层出不穷,如果总是追新,或者被某个软文吸引轻易选择了某个技术,最终会带来巨大的成本。 案例:为什么我们从Preact迁移到React 在早些年的时候,我们前端选择了Preact作为UI渲染技术,这有早年React License的原因,也有Preact更小性能更好的原因。 然而这些年在使用过程中,还是有很多不足的地方,核心原因都是生态不够好。 比如说Preact调试很麻烦,因为它不像React有一个强大的DevTools;比如说我们遇到过Preact在服务端渲染的内存泄漏问题,如果像我们这样大规模访问量的用户多一点,可能早就有人踩过坑了,不需要我们去花很长时间定位并最终去解决这个问题;比如最近我们在集成Nextjs,Nextjs是完全为React设计的,对Preact兼容性并不好。 这样的案例还很多(图四)(https://wx4.sinaimg.cn/mw690/66fd066bgy1gzyzjuxwh2j21wr10utq0.jpg),所以选择技术,它背后的生态和社区活跃度很重要。 原则4: 不仅要考虑如何构建,还要考虑如何维护 (图五)(https://wx3.sinaimg.cn/mw690/66fd066bgy1gzyzwc7m89j21wv10xk2v.jpg) 这是一个常见的问题,很多人只管搭建新项目的时候爽,而不管后续维护是不是困难,用了一堆自己喜欢的新技术,最后难以维护。下一个人接手了,搞不好会推翻重写一遍,这样的循环一次又一次。 这样的错误我也常犯,比如2年前React Hooks刚出的时候,我就迫不及待用它来替代Redux,结果上线后发现不好维护,有Bug也不好定位,不像以前Redux,数据流特别清晰,借助工具非常好重现和定位问题,最终上线没多久就改回去了。 所以现在在做技术决策的时候,我们很注意的一个问题就是将来维护的时候是不是很麻烦。 包括我在代码审查的时候,有时候看到一些功能能运行的很好PR,但是代码写的比较难懂的,或者没有遵守最佳实践的,只要是给未来的维护造成麻烦的,我都会毫不犹豫要求重写,避免增加未来的维护成本。 上面就是我们现在实践的五个技术决策原则:
- 原则 0: 遵守公认的好的设计原则
- 原则 1: 找出最本源的需求,而不应该局限于当前的技术实现和资源
- 原则 2: 聚焦于 “收益”、“成本”和“风险”三者之间的平衡,而不是技术本身
- 原则 3: 选择某个技术背后的生态系统而不是某个技术
- 原则 4: 不仅要考虑如何构建,还要考虑如何维护 这些原则绝大部分时候都可以很好的帮助我们做出正确的决策,避免踩坑。但我也会一直在反思曾经做过的决策,对于做出的不太好的决策,会反过来考虑是否要修订这些原则,最终通过不断完善决策原则,帮助我和团队更好的做出技术决策。 最后,推荐一下左耳朵耗子写的一篇:《我做系统架构的一些原则》我做系统架构的一些原则 ,非常有借鉴和参考价值。