From 4c6739b7b0d0457dceaeb3c667e58052b0810a9b Mon Sep 17 00:00:00 2001 From: scruel Date: Sun, 18 Sep 2022 19:28:56 +0800 Subject: [PATCH] Optimize code block&desc --- README.md | 4 ++-- week1.md | 16 ++++++++-------- week2.md | 2 +- week3.md | 4 ++-- week4.md | 2 -- week5.md | 12 ++++++------ 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 4bfc40f..5298e2c 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ https://www.coursera.org/learn/machine-learning 本项目包含课程中的课后作业以及笔记: -1. 笔记(notes)都为中文,为了便于复习和扩充等,尽量会按照视频目录,以及视频内容进行提炼整理。 +1. 笔记(notes)都为中文,为了便于复习和扩充等,尽量会按照视频目录,以及视频内容进行提炼整理。 2. 遵循[荣誉准则][honor code],现已移除已通过的课后编程作业的源代码,之后会改为指导笔记形式陆续更新。 感谢关注,欢迎分享。 @@ -32,7 +32,7 @@ https://www.coursera.org/learn/machine-learning 3. 下载 .html 网页文件及 笔记图片 image 文件夹,浏览器打开阅读。 -4. 笔记源码(.md)基于支持 LaTeX 的 markdown 编辑器 [Typora][Typora],其他类似的编辑器也可以阅读及编辑,注意其他编辑器可能会产生排版问题。 +4. 笔记源码(.md)基于支持 LaTeX 的 markdown 编辑器 [Typora][Typora],其他类似的编辑器也可以阅读及编辑,注意其他编辑器可能会产生排版问题。 ## Resources diff --git a/week1.md b/week1.md index 1d4bc72..2cdd7c9 100644 --- a/week1.md +++ b/week1.md @@ -107,7 +107,7 @@ 在鸡尾酒会上,大家说话声音彼此重叠,几乎很难分辨出面前的人说了什么。我们很难对于这个问题进行数据标注,而这里的通过机器学习的无监督学习算法,就可以将说话者的声音同背景音乐分离出来,看视频,效果还不错呢\~~。 -嗯,这块是打打鸡血的,只需要一行代码就解决了问题,就是这么简单!当然,我没复现过 ^_^…… +嗯,这块是打打鸡血的,只需要一行代码就解决了问题,就是这么简单!当然,我没复现过 \^\_\^…… 神奇的一行代码: `[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');` @@ -259,7 +259,7 @@ $$ > ”:=“: 赋值操作符 > > $\alpha$: 学习速率(learning rate), $\alpha > 0$ -> +> > $\frac{\partial }{\partial {{\theta }_{j}}}J\left( \theta_0, \theta_1 \right)$: $J\left( \theta_0, \theta_1 \right)$ 的偏导 公式中,学习速率决定了参数值变化的速率即”**走多少距离**“,而偏导这部分决定了下降的方向即”**下一步往哪里**“走(当然实际上的走多少距离是由偏导值给出的,学习速率起到调整后决定的作用),收敛处的局部最小值又叫做极小值,即”**陆地**“。 @@ -362,7 +362,7 @@ $$ ## 3.1 Matrices and Vectors -Octave/Matlab 代码: +Octave 代码: ```matlab % The ; denotes we are going back to a new row. @@ -415,7 +415,7 @@ A_23 = 6 ## 3.2 Addition and Scalar Multiplication -Octave/Matlab 代码: +Octave 代码: ```matlab % Initialize matrix A and B @@ -482,7 +482,7 @@ add_As = ``` ## 3.3 Matrix Vector Multiplication -Octave/Matlab 代码: +Octave 代码: ```matlab % Initialize matrix A @@ -521,7 +521,7 @@ Av = ``` ## 3.4 Matrix Matrix Multiplication -Octave/Matlab 代码: +Octave 代码: ```matlab % Initialize a 3 by 2 matrix @@ -559,7 +559,7 @@ mult_AB = ``` ## 3.5 Matrix Multiplication Properties -Octave/Matlab 代码: +Octave 代码: ```matlab % Initialize random matrices A and B @@ -628,7 +628,7 @@ BA = ``` ## 3.6 Inverse and Transpose -Octave/Matlab 代码: +Octave 代码: ```matlab % Initialize matrix A diff --git a/week2.md b/week2.md index 7f7b94a..b42530a 100644 --- a/week2.md +++ b/week2.md @@ -8,7 +8,7 @@ 这里由于特征不再只有一个,引入一些新的记号 -> $n$: 特征的总数 +> $n$: 特征的总数 > > ${x}^{\left( i \right)}$: 代表样本矩阵中第 $i$ 行,也就是第 $i$ 个训练实例。 > diff --git a/week3.md b/week3.md index d89daea..0bfadec 100644 --- a/week3.md +++ b/week3.md @@ -473,8 +473,8 @@ $$ > > $L$: 第一行第一列为 $0$ 的 $n+1$ 维单位矩阵 -Matlab/Octave 代码: -``` +Octave 代码: +```matlab >> L = eye(5) >> L(1,1) = 0 diff --git a/week4.md b/week4.md index 3bae0f5..d727e15 100644 --- a/week4.md +++ b/week4.md @@ -96,8 +96,6 @@ $h_\Theta(x) = a_1^{(3)} = g(\Theta_{10}^{(2)}a_0^{(2)} + \Theta_{11}^{(2)}a_1^{ 上面的计算过程被称为**前向传播(Forward propagation)**,即从输入层开始,一层一层地向下计算并传递结果。 - - 再回顾一下逻辑回归: ${h_\theta}\left( x \right)=g\left( {\theta_0}+{\theta_1}{x_1}+{\theta_{2}}{x_{2}}+{\theta_{3}}x_3 \right)$ diff --git a/week5.md b/week5.md index 302e543..2c08267 100644 --- a/week5.md +++ b/week5.md @@ -221,9 +221,9 @@ $$ 说白了,这个技巧就是把多个矩阵转换为一个长长的向量,便于传入函数,之后再根据矩阵维度,转回矩阵即可。 -Octave/Matlab 代码: +Octave 代码: -```octave +```matlab % 多个矩阵展开为一个向量 Theta1 = ones(11, 10); % 创建维度为 11 * 10 的矩阵 Theta2 = ones(2, 4) * 2; % 创建维度为 2 * 4 的矩阵 @@ -253,9 +253,9 @@ Theta2 = reshape(ThetaVec(111:118), 2, 4) 对于矩阵 $\Theta$,有 $\dfrac{\partial}{\partial\Theta_j}J(\Theta) \approx \dfrac{J(\Theta_1, \dots, \Theta_j + \epsilon, \dots, \Theta_n) - J(\Theta_1, \dots, \Theta_j - \epsilon, \dots, \Theta_n)}{2\epsilon}$ -Octave/Matlab 代码: +Octave 代码: -```octave +```matlab epsilon = 1e-4; for i = 1:n, thetaPlus = theta; @@ -278,11 +278,11 @@ end 随机初始化权重矩阵也为实现细节之一,用于打破对称性(Symmetry Breaking),使得 $\Theta^{(l)}_{ij} \in [-\epsilon,\epsilon]$ 。 -Octave/Matlab 代码: +Octave 代码: 当然,初始权重的波动也不能太大,一般限定在极小值 $\epsilon$ 范围内,即 $\Theta^{(l)}_{i,j} \in [-\epsilon, \epsilon]$。 -```octave +```matlab If the dimensions of Theta1 is 10x11, Theta2 is 10x11 and Theta3 is 1x11. Theta1 = rand(10,11) * (2 * INIT_EPSILON) - INIT_EPSILON;