![84d196265969fb491f6e1453a12f1988.png](https://i-blog.csdnimg.cn/blog_migrate/2039a75cd44b614142f4a6f30df4dcc0.jpeg)
前言:
最近在学习深度学习,看了不少教程,发现还是吴恩达的比较适用于我。吴恩达机器学习公开课视频最早是斯坦福大学的课程视频(那个画面有点老),新版的视频在网易云课堂上可以随时学习。仅仅通过视频学习,可能会有点快,因为有的知识点需要反复推敲和回味。感谢github上一位朋友的精心整理,让我们可以配合讲义一起学习,讲义有HTML版、PDF版、Markdown版的:视频配合讲义看,事半功倍
本文包括接下来的系列文章,都会是吴恩达机器学习课程的个人学习总结,有很多文字和图片直接参考了PDF版的课程讲义,再次谢过提供讲义的朋友!
网易云课堂课程视频:
https://study.163.com/course/courseMain.htm?courseId=1004570029
课程同步配套讲义:
https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
原文发布在语雀文档上,效果更好看点:
第四周 · 语雀www.yuque.com![2ab8a3aabc7707b425c9cbc04eefdc5d.png](https://i-blog.csdnimg.cn/blog_migrate/0ff850d96cecbbada38d8458de44fb0f.jpeg)
第四周
1. 神经元
1.1 神经元
为了构建神经网络模型,我们需要首先思考大脑中的神经网络是怎样的?每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。
![95bf0ee2687f4f45a338157683d3bb63.png](https://i-blog.csdnimg.cn/blog_migrate/37829ca6aa52f19712cfb771df615ce4.jpeg)
1.2 神经元间的沟通
神经元之间通过电信号进行沟通(微弱的电流)。所以如果神经元想要传递一个消息,它就会就通过它的轴突,发送一段微弱电流给其他神经元的树突。
接收到信号的神经元会对消息进行处理,处理后可能会通过自己的轴突再将信息传递出去给其他神经元。这就是神经元之间信号传递的简要概述。
2. 神经网络
神经网络是模仿大脑神经元,建立的模型。模型中的每个神经元都是一个单独的【学习模型】,这些神经元也叫做激活单元(activation unit)
2.1 Sigmoid神经元
以下示例为逻辑回归模型中常用的,sigmoid神经元的简单示例:
![50219edcffaa2336e3b24910a74895c8.png](https://i-blog.csdnimg.cn/blog_migrate/c7d40ac21736d57059381f82b943cf03.jpeg)
中间的神经元(激活单元)是一个sigmoid函数,它将左边输入的
2.2 三层神经网络
在Sigmod神经元的基础上,我们可以设计出一个简单的三层神经网络:
![515bc83cc0d305f741390ae3c03a133d.png](https://i-blog.csdnimg.cn/blog_migrate/b3a56f90d8ac5f85c87dd64ac3f819a7.jpeg)
对于上述模型,给每一层添加 偏差单位(bias unit)后,图像如下:
![482f9bf85426badc843a796a54cec835.png](https://i-blog.csdnimg.cn/blog_migrate/23d2e4e84a6cd45e7eb0775841f97a06.jpeg)
中间层激活单元的表达式:
![2b04a531d0de19b79ca1d5ea270e78f9.png](https://i-blog.csdnimg.cn/blog_migrate/442cfb8c93b88397b6a19a951eeddee0.png)
![fa72b36b633af8cb908042951be145fe.png](https://i-blog.csdnimg.cn/blog_migrate/638c37c9be699341197b8e2d78259923.png)
例如:
m = 第二层激活单元数 = 3;n = 第一层激活单元数 3 + 1 = 4
m = 第三层激活单元数 = 1;n = 第二层激活单元数 3 + 1 = 4
输入层表达式:
![4e96544c0b7e02de41276e9e14893581.png](https://i-blog.csdnimg.cn/blog_migrate/3040c4d930a05b0a6c6e7c5557afba5d.jpeg)
把
输出层表达式:
![6e5d07a700363660459c443aeda349cc.png](https://i-blog.csdnimg.cn/blog_migrate/caa7df5b74e2936c2804b0c3fe68ab39.png)
从式子里可以看出,对于每个
2.3 神经网络的优势
从2.2节我们可以看到,位于神经网络模型输出层的预测函数可以写作:
![6e5d07a700363660459c443aeda349cc.png](https://i-blog.csdnimg.cn/blog_migrate/caa7df5b74e2936c2804b0c3fe68ab39.png)
我们可以把
3.样本和直观理解
我们可以用一个单一的激活单元 + 不同的权重即可描三种二元逻辑运算符(BINARY LOGICAL OPERATORS) :逻辑与(AND)、 逻辑或(OR)、逻辑非(NOT)
我们只需要将假设函数
![249236d84fbd6b2d041c6b3aa8b232a9.png](https://i-blog.csdnimg.cn/blog_migrate/0b6bc2bd90d575ee9cb9c831ce133c2f.png)
令
从而:
要想实现逻辑与AND,我们可以分别设置
要想实现逻辑或OR,可以设置
要想实现逻辑非NOT,更简单,只需要一个输入即可。可以设置
4.多类分类
当我们要用神经网络模型来实现多分类,譬如训练一个模型来识别路人、汽车、摩托车和卡车。那么神经网络模型改如何构成?
假设我们的输入有三个维度、输出根据上述可知有4个分类,并且是4个互斥的分类。那么我们的神经网络模型可以设计成如下的形状:
![e8cf6ff47d79097c51172c6e9bdb3586.png](https://i-blog.csdnimg.cn/blog_migrate/0c56224c8ced580e3015e8b3decaaa0e.jpeg)
即总共4层、中间有两层隐藏层的网络结构。结果是4 x 1维矩阵。
我们可以用
来分别表示输出:
路人、汽车、摩托、卡车。