diff --git a/工作日志/2020年10月1日.md b/工作日志/2020年10月1日.md index 4e167038..579b7179 100644 --- a/工作日志/2020年10月1日.md +++ b/工作日志/2020年10月1日.md @@ -23,7 +23,7 @@ 10.4 上午 完成13-14 下午 完成15-16 -晚上 完成27-29 +晚上 完成17-19 ----------------- 10.5 机器学习基石上完成 diff --git a/工作日志/2020年9月6日.md b/工作日志/2020年9月6日.md index cf7a5a4e..bb0ee2bb 100644 --- a/工作日志/2020年9月6日.md +++ b/工作日志/2020年9月6日.md @@ -17,6 +17,7 @@ ## 学习路线 ### Python系列(一周) +> 熟悉python进行机器学习的基础库,包括每个库都干了什么。 python3-numpy-scipy-matplotlib-pandas√ > 基本完成。主要是知道了这些东西都是干什么用的。 @@ -26,21 +27,24 @@ python3-numpy-scipy-matplotlib-pandas√ 1. 《机器学习》吴恩达的课程一看。跟着做做笔记。 * 完成第一轮,笔记对照(看一部分,总结一部分。) + * 看吴恩达的PPT重新整理所有的笔记。 + * 寻找吴恩达课程的课后题,使用python完成课后题 2. 《机器学习基石》上&下//李宏毅的机器学习也行 * 完成第二轮,笔记对照(跟上实践) 3. 《统计学习方法》一看。3Blue1Brown的视频看一看。跟着做做笔记。 4. 《机器学习西瓜书》一看。跟着做做笔记。 5. 《机器学习实战》量子位提供的书,适合编程。 -6. tensorflow教程一看,实现一遍之前的算法。 +6. 《python机器学习》里边涉及几个实战 +7. tensorflow教程一看,实现一遍之前的算法。 -### 安排 -1. 首先跟着量子位的课程完成上述学习。 -2. 然后跟着apacheCN的资料完成第二阶段的阅读。 -3. 然后就是尝试专业领域的应用实战。 +> 安排 +> 1. 首先跟着量子位的课程完成上述学习。 +> 2. 然后跟着apacheCN的资料完成第二阶段的阅读。 +> 3. 然后就是尝试专业领域的应用实战。 > 补充:林轩田《机器学习基石》《机器学习技法》。李宏毅的《机器学习视频教程》。 工具 -* sklearn -* tensorflow +> * sklearn +> * tensorflow ### 深度学习系列(一周) 吴恩达的神经网络五套课程看完。 diff --git a/工作日志/总结.md b/工作日志/总结.md index 33351ef7..1c3b821a 100644 --- a/工作日志/总结.md +++ b/工作日志/总结.md @@ -18,4 +18,7 @@ ## 第五周(9.28-10.4) * 吴恩达课程完成。 -* 机器学习相关工具的熟练。 \ No newline at end of file +* 机器学习相关工具的熟练。 +* 完成了张小玉部分的界面。 + +## \ No newline at end of file diff --git a/机器学习/img/Z5OY52BXMF[@BB@ITAVIZ}6.png b/机器学习/img/Z5OY52BXMF[@BB@ITAVIZ}6.png new file mode 100644 index 00000000..3fbc5bb2 Binary files /dev/null and b/机器学习/img/Z5OY52BXMF[@BB@ITAVIZ}6.png differ diff --git a/机器学习/img/backward.png b/机器学习/img/backward.png new file mode 100644 index 00000000..e4d20079 Binary files /dev/null and b/机器学习/img/backward.png differ diff --git a/机器学习/img/backward_原理.png b/机器学习/img/backward_原理.png new file mode 100644 index 00000000..5c4a9b1a Binary files /dev/null and b/机器学习/img/backward_原理.png differ diff --git a/机器学习/img/backwark_过程.png b/机器学习/img/backwark_过程.png new file mode 100644 index 00000000..05f35c7b Binary files /dev/null and b/机器学习/img/backwark_过程.png differ diff --git a/机器学习/img/forward.png b/机器学习/img/forward.png new file mode 100644 index 00000000..edebfbe0 Binary files /dev/null and b/机器学习/img/forward.png differ diff --git a/机器学习/机器学习课程笔记/01机器学习基础.md b/机器学习/机器学习课程笔记/01机器学习基础.md index e048f208..c457584a 100644 --- a/机器学习/机器学习课程笔记/01机器学习基础.md +++ b/机器学习/机器学习课程笔记/01机器学习基础.md @@ -17,4 +17,14 @@ 用事件发生的频率 作为 事件发生的概率。本质上是一种机器学习。通过计算在此大小、年龄下恶性的概率,可以得到某些年龄段的的概率分布。与概率一一对应。 -但机器学习,是不需要直接计算概率的。 \ No newline at end of file +但机器学习,是不需要直接计算概率的。 + +## 涉及到的数学知识 + \ No newline at end of file diff --git a/机器学习/机器学习课程笔记/05拟合与正则化.md b/机器学习/机器学习课程笔记/05拟合与正则化.md index 63a55c1c..ba8b43d0 100644 --- a/机器学习/机器学习课程笔记/05拟合与正则化.md +++ b/机器学习/机器学习课程笔记/05拟合与正则化.md @@ -1,6 +1,7 @@ ## 过拟合 ### 偏差 +* bias ### 方差 ### 过拟合 @@ -14,4 +15,32 @@ ### 解决办法 * 减少特征的数量 -* 对特征进行正则化。 \ No newline at end of file +* 对特征进行正则化。 + +## 正则化 + +* 代价函数加入正则化的数据项,用来缩小每一个参数。 +* 现行回归的正则化代价函数 +$$ +J(\theta) = \frac{1}{2m}[\sum_1^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_1^n\theta^2_j] +$$ + +* 逻辑回归的正则化,二者一致。 + +$$ +J(\theta)=-\frac{1}{m}[\sum_i^my^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log (1-h_\theta (x^{(i)}))]+\frac{\lambda}{2m}\sum_1^n\theta_j^2 +$$ +## 编程任务 + +### 线性回归 +* 添加,高阶的编程项. +* 对参数进行正则化,并对比正则化前后假设函数的不同。 +* 需要绘制,拟合过程参数变化率(梯度下降速度。 +* 需要绘制,拟合完成后假设函数(假设函数的最终形状。判断是否过拟合。 + +### 逻辑回归 + +* 添加,高阶的编程项. +* 对参数进行正则化,并对比正则化前后假设函数的不同。 +* 需要绘制,拟合过程参数变化率(梯度下降速度。 +* 需要绘制,拟合完成后假设函数(假设函数的最终形状。判断是否过拟合。 diff --git a/机器学习/机器学习课程笔记/06神经网络原理.md b/机器学习/机器学习课程笔记/06神经网络原理.md new file mode 100644 index 00000000..1b5398ff --- /dev/null +++ b/机器学习/机器学习课程笔记/06神经网络原理.md @@ -0,0 +1,41 @@ +## 非线性假设 + +* 当特征很多时,如果包含各种高阶项,特征空间会爆炸。 +* 在非线性空间中,使用逻辑回归进行分类,会导致特征空间过多。 + +## 神经网络 + +### 相关术语 +* input layer输入层 +* output layer输出层 +* bias unit 偏置单元 +* sigmod、logistic activation function激活函数 +* $\theta$模型参数=模型权重 + +## 模型展示 + +* 神经网络本身是机器学习的一个假设函数。 +* 使用数学计算能够表示神经网络的计算过程。即计算给定输入后,计算神经网络的输出值。 +* 使用向量化的计算方法,计算神经网络的前向传播过程。 + +## 实例 + +![](../img/Z5OY52BXMF[@BB@ITAVIZ}6.png) + +* 使用神经网络表示逻辑运算。 +* sigmod算子。+-10,+-20 + +## 计算向量化 + +* 普通计算向量化 +* 多组数据矩阵化 + +> * 使用向量,来表示计算过程。使用矩阵来表示多组数据的计算过程。 +> * 在线性回归和逻辑回归当中,多组输入向量,乘,固定的参数向量,等于,输出向量。 +> * 在神经网络中,一组输入向量,乘,多组参数向量,等于,输出向量。 +> * 下标用来表示矩阵和向量中的元素位置。上标表示迭代的代数。 + +## 编程任务:使用神经网络进行多元分类 + +* 寻找图片的数据集。 +* 区分不同的交通工具 \ No newline at end of file diff --git a/机器学习/机器学习课程笔记/07神经网络实例.md b/机器学习/机器学习课程笔记/07神经网络实例.md new file mode 100644 index 00000000..86752b3b --- /dev/null +++ b/机器学习/机器学习课程笔记/07神经网络实例.md @@ -0,0 +1,58 @@ +## 假设函数 + +* 神经网络本身,即是假设函数能够计算输入相对的输出。 + +## 代价函数 + +* $L$表示神经网络的总层数。 +* $s_L$表示第L层单元的个数。 +* $K$表示输出层单元的个数 +* 代价函数相当于第i组数据输入时,产生的误差。 + +$$ +J(\theta)=-\frac{1}{m}[\sum_i^my^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log (1-h_\theta (x^{(i)}))]+\frac{\lambda}{2m}\sum_1^n\theta_j^2 +$$ +* $a^{(i)}$表示第i层的单元值。 +* $\Theta^{(i)}$第i层的权重 +* $z^{(i)}$第i层的加权值 +* $\delta^{(i)}$第i层的反向传播误差。 + +## 最小化代价函数:反向传播算法 + + +* 在这里的上标,代表的不是输入的代数(即第几次迭代),而是神经网络的层数。下标表示的是神经网络某层的单元数。 +* 原理:神经网络的值会随着假设函数正向传播。神经网络的误差会随着假设函数反向传播到第二层。利用每一层的单元值和神经网络的误差能够计算每一层的梯度下降向量,通过梯度下降向量,完成参数的更新。 +* 神经网络的正向传播过程 + +![](../img/forward.png) + +* 神经网络的反向传播过程 + +![](../img/backward.png) + +* 神经网络反向传播算法实现 + +![](../img/backwark_过程.png) + + +## 反向传播算法理解 + +* $\delta_j^{(i)}$表示第i层的单元j的误差。他相当于单元j的代价函数$J=cost_j$关于加权值$z^{(i)}_j$的偏导数 + +$$ +\delta_j^{(i)}=\frac{\partial}{\partial z}cost_j +$$ + + +![](../img/backward_原理.png) + +## 梯度检测 + +* 使用差分方法,近似某个点的梯度。普通的梯度是通过求导公式得到导数,然后进行梯度下降。可以使用差分近似导数,与梯度进行对比,完成梯度检测。 + +## 权重随机初始化 + +* 避免权重相同,出现高度冗余。 +* 因为在梯度下降更新过程中,相同的权重,会进行相同程度的更新。 +* 打破对称性流程 + diff --git a/机器学习/机器学习实战/01matplot3D图像.py b/机器学习/机器学习课程笔记/编程作业/01matplot3D图像.py similarity index 100% rename from 机器学习/机器学习实战/01matplot3D图像.py rename to 机器学习/机器学习课程笔记/编程作业/01matplot3D图像.py diff --git a/机器学习/机器学习实战/02线性回归尝试.py b/机器学习/机器学习课程笔记/编程作业/02线性回归尝试.py similarity index 100% rename from 机器学习/机器学习实战/02线性回归尝试.py rename to 机器学习/机器学习课程笔记/编程作业/02线性回归尝试.py diff --git a/机器学习/机器学习实战/03多元线性回归.py b/机器学习/机器学习课程笔记/编程作业/03多元线性回归.py similarity index 100% rename from 机器学习/机器学习实战/03多元线性回归.py rename to 机器学习/机器学习课程笔记/编程作业/03多元线性回归.py diff --git a/机器学习/机器学习实战/04逻辑回归分类.py b/机器学习/机器学习课程笔记/编程作业/04逻辑回归分类.py similarity index 100% rename from 机器学习/机器学习实战/04逻辑回归分类.py rename to 机器学习/机器学习课程笔记/编程作业/04逻辑回归分类.py diff --git a/机器学习/机器学习课程笔记/编程作业/05拟合与正则化.py b/机器学习/机器学习课程笔记/编程作业/05拟合与正则化.py new file mode 100644 index 00000000..e69de29b