1.2 什么是神经网络
这个课程啥也没讲,就用一个最简单的例子引出神经网络。下图所示ReLu激活函数,全称是rectified linear unit,后面还会出现一个其他的激活函数。
把一个个小的神经元堆叠起来就形成神经网络,中间的神经元称为隐藏神经元,当这个神经网络训练完成之后,就可以通过输入x特征就可以得到target了。
1.3 用神经网络进行监督学习
这节就说了下什么是有监督什么是无监督,结构化数据和非结构化数据。有监督学习就是会给出正确答案,线性回归,逻辑回归,SVM都是;无监督就类似EM算法,没有正确答案。模型还有有参模型和无参模型,半参模型,这里没有·提到。结构化数学就是存储在database里面的数据,身高体重等等,非结构化数据就是比如图片,音频等等。这两节课都被他水完了。
1.4 1.5 1.6
跳过了。
2 神经网络基础
以逻辑回归为例子。如果使用Java,遍历每一个数据可能需要for循环一个一个来,但是Python不然,可以直接进行矩阵计算,所以把所有的特征并成一列计算更方便。想要预测一张图片是否是猫,那就查看分类器输出的y hat是0还是1,但是我们更希望这个u hat是一个概率,线性函数
可以达成预测条件,但是y hat需要介于0和1之间。为了把y hat转换成一个概率,可以使用sigmod函数转换,于是目标函数就转换成
Sigmod Function
既然目标函数有了,那接下来就是寻找损失函数和代价函数了,也即是error function和cost function。这个两个函数区别不大,但是意义不同,之前一直没有注意。error function指的是一个数据点的更新,cost function指的是所有数据的更新。这里对比了两个损失函数,最小二乘法和交叉熵。具体推导:https://cloud.tencent.com/developer/article/1387178
老师给出了两个损失函数,但是却没有给出为什么logistic regression不能用最小二乘法。最小二乘法是通过正态分布推导出来的,而正态分布符合现实生活中大多数的误差情况,所以直接取用了,但是logistic是二分类任务,非0即1,完全不符合正态分布,所以用最小二乘法是不行的,而logistic最后又需要用sigmod函数转换成概率,于是就用期望值最大似然当成error function,然后取个log求和当成cost function了。另外AndrewNg的ppt解释也很通俗,当类别是1的时候函数可以看出尽量使得y hat趋向1,类别是0的时候也尽量趋向于0。
这里加个负号是把他转换成求最小值。