机器学习工程师练习生
***一个机器学习算法工程师的基本素质~_love模式识别-CSDN博客 20160531
搞机器学习要哪些技能 - 知乎 20160531
*** GitHub - Avik-Jain/100-Days-Of-ML-Code: 100 Days of ML Coding
*** 100天搞定机器学习(100-Days-Of-ML)(一)数据预处理 | 数据学习者官方网站(Datalearner) 20190706
CV & DL 社区
超详细的计算机视觉竞赛汇总 - Tom Hardy的文章 - 知乎 20210131
zh-cn, en-us,
如何用好谷歌等搜索引擎? - 知乎
Google Search Computer Vision
Computer Vision homepage
Computer Vision online
Computer Vision source codes
Computer Vision test data
Computer Vision ……
百度文库 计算机视觉 清华大学课件 (注:会有很多推荐的链接)
您学习中高频使用的深度学习框架是?
- 飞桨 PaddlePaddle ONAP TensorFlow MXNet CNTK Deeplearning4j Theano
Caffe MindSpore Caffe2/PyTorch/Torch Puppet MegEngine 天元 其他
近半年,您使用过哪些AI学习与实训平台来学习深度学习技术?
- Momodel 百度 AI Studio 字节跳动AI Factory 阿里天池实验室 Kaggle 腾讯智能钛 TI 微软Deeplab
Google Colab 和鲸 KesciLab 其他 不使用任何AI在线学习与实训平台
您经常使用哪些社区/媒体/网站等了解深度学习相关知识?
- 博客园 Github 机器之心 开源中国 新智元 量子位 网易云课堂 慕课 InfoQ Udacity CSDN 知乎 简书
Coursera 中国大学MOOC 哔哩哔哩 其他
青少年人工智能教育
CV & DL 领域相关术语
*** 刚进算法团队,大牛们讨论高深的cv术语和算法,如何才能听懂? - Yulong的回答 - 知乎 20210722
CV领域Paper论文常见单词(一) - 知乎
机器学习符号规范
通用机器学习符号集 - 北京智源人工智能研究院
GitHub - mazhengcn/suggested-notation-for-machine-learning: This introduces a suggestion of mathematical notation protocol for machine learning.
机器学习思维导图
机器学习思维导图1
机器学习思维导图2
机器学习思维导图3
转自:机器学习6种简单实用算法及学习曲线、思维导图 20200108
转自:一张机器学习算法的思维导图_麦田里的守望者 20190908
其它算法(待归类)
概率密度估计
RANSAC算法
RANSAC (RANdom SAmple Consensus) algorithm.
RANSAC is an iterative algorithm for the robust estimation of parameters from a subset of inliers from the complete data set.
sklearn.linear_model.RANSACRegressor — scikit-learn 0.24.2 documentation
高斯混合模型(Gaussian Mixture Models)
20220407记:
- *** How to code Gaussian Mixture Models from scratch in Python | by Thalles Silva | Towards Data Science 20190903
- (待阅读) Gaussian Mixture Models with Python | by Yufeng | Towards Data Science 20211027
- *(待阅读) In Depth: Gaussian Mixture Models | Python Data Science Handbook
- (待阅读) 2.1. Gaussian mixture models — scikit-learn 1.0.2 documentation
Rectangle Packing Algorithm
20220424谷歌搜索"Put four rectangles inside the rectangle"
另注: 谷歌搜索"more-rectangle-bin-packing python"的结果暂未浏览;
- ***Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites - CodeProject 20110614
- ***Welcome to rectangle-packer — rectangle-packer 2.0.1 documentation
- secnot/rectpack: Python 2D rectangle packing library
- **c - find smallest area that contains all the rectangles - Stack Overflow 20120917
- GitHub - Ivony/CssSpritesGenerator: Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites 20160131
- *Exploring rectangle packing algorithms 20200310
What is a rectangle packing algorithm?
More generally, “packing” problems are a set of problems related to fitting shapes into some kind of container. In game development, we’re used to 2D packing problems, and more specifically the rectangle packing problem, where you have some set of rectangles of different dimensions and you need to fit them into a containing rectangle.
The tricky thing is, this is what’s called an NP-hard (non-deterministic polynomial) problem. I don’t understand computational complexity enough to define that in detail, but suffice to say it’s extremely difficult and does not have a “perfect” solution. As a result, there are countless different algorithms that “solve” the problem to some degree, but all have tradeoffs and issues. Thus you have to pick what suits your needs.
*Exploring rectangle packing algorithms 20200310 - 如何评价阿里天池大数据竞赛面料剪裁利用率优化问题? - 知乎
卡尔曼滤波
- ***** 扩展卡尔曼滤波新手教程(一)----中文版_尚庆龙的博客-CSDN博客 20190511
- ***** Kalman Tutorial – Simon D. Levy
- ***** 20161219 The Extended Kalman Filter An Interactive Tutorial for Non-Experts.pdf
极限学习机
自动编码器
- Applied Deep Learning - Part 3: Autoencoders | by Arden Dertat | Towards Data Science 20171003
- Building Autoencoders in Keras
- xxx
- Autoencoders in Deep Learning: Tutorial & Use Cases [2022]
自动编码器是一种人工神经网络,用于以无监督的方式学习数据编码。自动编码器的目的是学习高维数据的低维表示(编码),通常是为了降维。编码器-解码器结构帮助我们从输入中提取出有效信息并在网络内部的信息之间建立有用的关联。
自动编码器由3部分组成:
- Encoder: 编码输入,实现数据降维;
- Bottleneck: 限制从编码器到解码器的信息流,只允许最重要的信息通过; Bottleneck 设计得越小,过拟合的风险越低;但过小的 Bottleneck 会限制 Bottleneck 可存储信息的数量,而得以幸存的信息也更重要。
- Decoder: 重构后的输入,;
自动编码器的思想最早可追溯到1980s,而今5种流行的自动编码器有:
- Undercomplete autoencoders.
- Sparse autoencoders
- Contractive autoencoders
- Denoising autoencoders
- Variational Autoencoders (for generative modelling)
Undercomplete autoencoders.
无监督, 试图预测与输入相同的输出; 这种自动编码器的主要用途是生成潜在空间表示作为输入的压缩替代品,并且在需要时可以很容易地通过网络解压缩回来。用于训练欠完全自编码器的损失函数被称为重构损失,因为它检查从输入重建的输出好坏。
PCA(主成分分析)形成一个低维的超平面,在不丢失信息的情况下以高维的形式表示数据。但 PCA 只能建立线性关系,因此在降维方面的表现比不上学习非线性关系的欠完全自动编码器方法。这种自编码器学习非线性流形的非线性降维形式也被称为流形学习。
Sparse autoencoders
稀疏式自动编码器与欠完全自动编码器相似,它们都试图预测与输入相同的输出。不同之处在于信息编码的规范方式,欠完全自编码器约束 Bottleneck 的大小,而稀疏自编码器约束每个隐层的节点数。
机器学习知识点
数据增强
赛尔笔记 | 深度学习领域的数据增强_哈工大SCIR 20191129
距离计算方法总结
相似性度量(Similarity Measurement)与“距离”(Distance) - 夕月一弯 - 博客园 20160816
距离计算方法总结 - soyosuyang - 博客园 20170523
本篇博客涵盖以下内容:
- 欧氏距离
- 曼哈顿距离
- 切比雪夫距离
- 闵可夫斯基距离
- 标准化欧氏距离
- 马氏距离
- 夹角余弦
- 汉明距离
- 杰卡德距离 & 杰卡德相似系数
- 相关系数 & 相关距离
- 信息熵
归一化方法
由于采集的各数据单位不一致,因而需对数据进行归一化处理,归一化方法主要有如下几种,供大家参考:
1、线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue)
说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。
2、对数函数转换,表达式如下:
y=log10(x)
说明:以10为底的对数函数转换。
3、反余切函数转换,表达式如下:
y=atan(x)*2/PI
归一化是为了加快训练网络的收敛性,可以不进行归一化处理
归一化的具体作用是归纳统一样本的统计分布性。归一化在[0, 1]之间是统计的概率分布,归一化在[-1, 1]之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要统一。但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。
(注:部分表述不一定可信可靠,注意鉴别) 数据归一化汇总 – MATLAB中文论坛 20100418
其它杂货
- 机器学习中不平衡数据问题及处理_qq60cc3533dc52a的技术博客_51CTO博客 20220422
- softmax,argmax,soft-argmax 理解_道长的博客-CSDN博客 20190316
- 训练集,验证集,测试集比例_weixin_30670151的博客-CSDN博客 20190701
深度学习知识点
关于CNN是否具有平移、旋转、尺度不变性
-
Q:关于CNN是否具有平移、旋转、尺度不变性
A: 关于CNN是否具有平移、旋转、尺度不变性,个人认为,单纯的卷积层不具有平移、旋转、尺度不变性;只有池化层有一定的平移不变性,且网络越深平移不变性越好,但池化层是没有旋转、尺度不变性的。是通过数据增强的方式,让CNN去适应输入图像中的平移、旋转、尺度变化;例如,随机裁剪让CNN对平移变化更鲁棒、随机旋转让CNN对旋转变化更鲁棒、随机缩放让CNN对尺度变化更鲁棒; -
(待阅读) 关于 CNN对图像特征的 位移、尺度、形变不变性的理解_voxel_grid的博客-CSDN博客 20180207
-
(待阅读) 卷积神经网络保证“位移、尺度、形变不变性”该怎么理解? - Julius Caesar的回答 - 知乎 20160403
-
conv neural network - How do CNNs handle scale invariance? - Cross Validated 20171201
绘制神经网络图的工具
- 论文中卷积神经网络常见的示意图用什么软件来画比较容易? - 知乎
- 2019 最全神经网络结构图画图工具介绍,没有之一! - 亨利王的博客 - CSDN博客20190416
- 论文中绘制神经网络工具汇总 - WZZ18191171661的博客 - CSDN博客20190222
- 深度学习画图神器(TikZ) - zhaoyu106的博客 - CSDN博客20161220
- 深度学习模型图难画论文难中?这个ML Visual利器帮你快速画出漂亮的模型图-专知-二十次幂 20200518
- dair-ai/ml-visuals: 🎨 ML Visuals contains figures and templates which you can reuse and customize to improve your scientific writing.
网络调参, 梯度可视化
keywords: debugging neural networks, visualize the gradients,
- *** Debugging Neural Networks with PyTorch and W&B Using Gradients and Visualizations on Weights & Biases
- Visualizing and Debugging Neural Networks with PyTorch and W&B – Weights & Biases
Suppose you are building a not so traditional neural network architecture. The easiest way to debug such a network is to visualize the gradients. If you are building your network using PyTorch W&B automatically plots gradients for each layer. Check out my notebook here.,Check out my notebook here to see how you can initialize weights in PyTorch.,Use this LRFinder to automatically find the optimal learning rate for your model.,If you are using Keras to build your model you can make use of the learning rate finder as demonstrated in this blog by PyImageSearch. You can also refer this blog for an implementation in TensorFlow 2.0.
In this notebook, you’ll find an implementation of this approach in PyTorch. I have implemented a class
LRfinder
. The methodrange_test
holds the logic described above. Usingwandb.log()
, I was able to log the learning rate and corresponding loss.
*** How to check the output gradient by each layer in pytorch in my code? - Pretag
- Debugging Neural Networks with PyTorch and W&B | by Ayush Thakur | Towards Data Science 20200514
- ** python - How to check the output gradient by each layer in pytorch in my code? - Stack Overflow
Debug Neural Networks with W&B, MNIST_pytorch例子
-
import wandb def train(): wandb.log({'Train Loss': loss.item(), 'Train Accuracy': acc}) wandb.init(project='overfitsmall') wandb.watch(net, log='all')
-
debugNNwithWandB/MNIST_pytorch_wandb_LRFinder.ipynb at master · ayulockin/debugNNwithWandB · GitHub
class LRFinder(object): def range_test(): wandb.log({'lr': lr_schedule.get_lr()[0], 'loss': loss}) def train(): wandb.log({'Train Loss': loss.item(), 'Train Accuracy': acc}) def test(): wandb.log({'Test Loss': test_loss/test_total, 'Test Accuracy': acc}) wandb.init(project='lrfinder') wandb.watch(net, log='all')
-
结果观测
-
Vanishing_Grad_1,
训练了 20 epochs ;
当训练不怎么收敛时, 可以观测到 train loss 的波动幅度较小; 有些 layers 的 gradients 值始终为 0 ; 有些 layers 的 parameters 的值分布几乎不怎么变化; -
VG_Converge,
训练了 60 epochs ;
当训练不怎么收敛时, 可以观测到 train loss 的波动幅度较小; 有些 layers 的 gradients 值始终为 0 ; 有些 layers 的 parameters 的值分布几乎不怎么变化;
当训练开始收敛时, 可以观测到 train loss 开始较明显地减小; 某些 layers 的 parameters 的值分布开始发生较明显的变化; -
VG_solved_Relu
xxx
-
网络感受野
- *** Computing Receptive Fields of Convolutional Neural Networks
- convolutional neural networks - What is the difference between a receptive field and a feature map? - Artificial Intelligence Stack Exchange
Tensorboard
- Tensorflow的可视化工具Tensorboard的使用——图(graph)的使用_wgj99991111的博客-CSDN博客 20181118
- 深入浅出的TensorFlow可视化工具TensorBoard用法教程(一)_hyman.lu-CSDN博客 20171103
- tensorflow6—tensorboard可视化简易教程(一看就懂!)_Nemo的博客-CSDN博客 20180310
Running TensorBoard remotely
If you are building your model on a remote server, SSH tunneling or port forwarding is a go to tool, you can forward the port of the remote server to your local machine at a port specified i.e 6006 using SSH tunneling.
Run this command on a terminal on the local machine to forward port from the server via ssh and start using Tensorboard normally.ssh -L 6006:localhost:6006 user_name@server_ip # localhost可以通过`ifconfig`命令获取 lo inet addr 的值 ssh -L 6006:127.0.0.1:6006 user_name@server_ip
If you have a port forwarded to a different port, other than 6006, let’s say 6007, you can run your Tensorboard by specifying the correct port.
Run this command on a terminal on the remote machine, and then navigate to http://localhost:6006.tensorboard --logdir <path> --port=6006
The complete guide to ML model visualization with Tensorboard | cnvrg.io
tensorflow - How can I run Tensorboard on a remote server? - OStack Q&A-Knowledge Sharing Community
远程访问服务器tensorboard - cv_gordon - 博客园 20181024
解决tensorboard attempted to bind to port 6006,but it was already in use问题的几种方法_c20081052的专栏-CSDN博客 20180823
Linux 查看端口占用情况 | 菜鸟教程
待补充
数学公式粗体
\textbf{}
或者
m
e
m
o
r
y
{\bf memory}
memory
数学公式粗斜体
\bm{}
摘录自“bookname_author”
此文系转载,原文链接:名称 20200505
高亮颜色说明:突出重点
个人觉得,:待核准个人观点是否有误
分割线
分割线
我是颜色为00ffff的字体
我是字号为2的字体
我是颜色为00ffff, 字号为2的字体
我是字体类型为微软雅黑, 颜色为00ffff, 字号为2的字体
分割线
分割线
问题描述:
原因分析:
解决方案: