吴恩达老师机器学习课程chapter04——神经网络
吴恩达老师机器学习课程chapter04——神经网络
本文是非计算机专业新手的自学笔记,高手勿喷,欢迎指正与其他任何合理交流。
本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第八章、第九章。
二分类
基本概念
对于复杂的非线性分类问题,线性回归中构造非线性的多项式回归可能会变得十分复杂,特征数会变得很多。
这种情况下,可以使用神经网络。神经网络运用简单的数学模型模拟人脑中神经元的工作方式。如图是一个简单的神经元模型:
其中有三层:输入层(layer 1: input layer),隐藏层(layer 2: hidden layer),输出层(layer 3: output layer)。
常常添加x0、a0,来构成常数偏置项。
$ a_{i}^{(j)} $ 表示第j层激活项,由输入层经过某种函数计算得到,这个函数也叫做激活函数。
分类问题中的Sigmoid函数,被用作一种激活函数。
实质上是从现有特征中,学到的新的特征的过程。
$ \Theta ^{(j)} $ 表示由 系数θ构成的、(\(s_{j+1}\times s_{j}+1\))的系数矩阵,从第j层指向第j+1层。
由输入层到隐藏层到输出层,这样的传播被称为神经网络的前向传播(forward propogation)过程。
写作矩阵形式:
\]
其中,\(x^{(1)\prime}\)不含偏置项\(x^{(1)}_0\),补上常数偏置项得\(x^{(1)}\),\(a^{(2)\prime}\)不含偏置项\(a^{(2)}_0\),补上常数偏置项得\(a^{(2)}\)
神经网络的层数可以灵活增加,以获取更复杂的特征。
简单举例
神经网络实现AND逻辑
神经网络实现OR逻辑
神经网络实现NOT逻辑
神经网络实现NOR逻辑
多分类
以上举例实现的是二分类问题。想要实现多分类。本质上就是拓展输出层。
输出层不再是一个数,而是一组由概率构成的向量。选取概率最大作为输出结果。
这种时候输出写为$h_{\Theta}(x) \in \mathbb{R}^{K} $,是一个K维向量,有K个可能的输出结果。
\(\quad\left(h_{\Theta}(x)\right)_{i}=i^{t h} \text { output }\)。
代价函数
神经网络的代价函数为:
J(\Theta)=&-\frac{1}{m}\left[
\sum_{i=1}^{m} \sum_{k=1}^{K} y_{k}^{(i)} \log \left(h_{\Theta}\left(x^{(i)}\right)\right)_{k}+\left(1-y_{k}^{(i)}\right) \log \left(1-\left(h_{\Theta}\left(x^{(i)}\right)\right)_{k}\right)\right] \\
&+\frac{\lambda}{2 m} \sum_{l=1}^{L-1} \sum_{i=1}^{s_{l}} \sum_{j=1}^{s_{l+1}}\left(\Theta_{j i}^{(l)}\right)^{2}
\end{aligned}
\]
其构成有两部分组成:
1. 由m个训练样本的Cost函数之和
2. 正则项
更新系数——反向传播(back-propogation)
运用梯度下降法解最优问题,会遇到求偏导数$\frac{\partial J(\Theta )}{\partial \Theta ^{(l)}_{ij}} $的问题:
其思想请直接参考博客https://blog.csdn.net/weixin_38347387/article/details/82936585
其实质依然是偏微分的链式求导法则。
其结果为:
这里暂不做详细推导。
吴恩达老师机器学习课程chapter04——神经网络的更多相关文章
- 机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/
机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 GNU Octave 开源 MatLab http://www.ai-start.com/ https://zhuanlan.zhihu ...
- 吴恩达《机器学习》课程笔记——第六章:Matlab/Octave教程
上一篇 ※※※※※※※※ [回到目录] ※※※※※※※※ 下一篇 这一章的内容比较简单,主要是MATLAB的一些基础教程,如果之前没有学过matlab建议直接找一本相关书籍,边做边学,matl ...
- 吴恩达《机器学习》课程总结(5)_logistic回归
Q1分类问题 回归问题的输出可能是很大的数,而在分类问题中,比如二分类,希望输出的值是0或1,如何将回归输出的值转换成分类的输出0,1成为关键.注意logistics回归又称 逻辑回归,但他是分类问题 ...
- 深度学习 吴恩达深度学习课程2第三周 tensorflow实践 参数初始化的影响
博主 撸的 该节 代码 地址 :https://github.com/LemonTree1994/machine-learning/blob/master/%E5%90%B4%E6%81%A9%E8 ...
- 吴恩达 Deep learning 第二周 神经网络基础
逻辑回归代价函数(损失函数)的几个求导特性 1.对于sigmoid函数 2.对于以下函数 3.线性回归与逻辑回归的神经网络图表示 利用Numpy向量化运算与for循环运算的显著差距 import nu ...
- 吴恩达《机器学习》课程总结(18)_照片OCR
18.1问题描述和流程图 (1)图像文字识别是从给定的一张图片中识别文字. (2)流程包括: 1.文字侦测 2.字符切分(现在不需要切分了) 3.字符分类 18.2滑动窗口 在行人检测中,滑动窗口是首 ...
- 吴恩达《机器学习》课程笔记——第七章:Logistic回归
上一篇 ※※※※※※※※ [回到目录] ※※※※※※※※ 下一篇 7.1 分类问题 本节内容:什么是分类 之前的章节介绍的都是回归问题,接下来是分类问题.所谓的分类问题是指输出变量为有限个离散 ...
- 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归
❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...
- 吴恩达deeplearning之CNN—卷积神经网络
https://blog.csdn.net/ice_actor/article/details/78648780 个人理解: 卷积计算的过程其实是将原始的全连接换成了卷积全连接,每个kernel为对应 ...
- 跟我学算法-吴恩达老师(超参数调试, batch归一化, softmax使用,tensorflow框架举例)
1. 在我们学习中,调试超参数是非常重要的. 超参数的调试可以是a学习率,(β1和β2,ε)在Adam梯度下降中使用, layers层数, hidden units 隐藏层的数目, learning_ ...
随机推荐
- inspeckage
c:\ChangZhi\dnplayer2 d:\ChangZhi\dnplayer2然后在电脑的 terminal 中执行 " 端口转发 " 命令:adb forward t ...
- element-ui的collapse中嵌套table表格 的 高度跳跃 问题
<script src="//unpkg.com/vue@2.6.10/dist/vue.js"></script><script src=" ...
- 面向对象程序设计第二次blog
一.前言 第四次题目集总结-- 题量:较多 难度:较高 知识点: 获取输入字符串的特定字符类型 获取并储存.计算 循环.选择.字符串.数组的使用 继承 类的设计 总结:题目比较难,题量较少,需要用到正 ...
- VUE学习-组件
组件 组件是可复用的 Vue 实例,且带有一个名字. <div id="components-demo"> <button-counter></but ...
- 老毛桃WinPE以ISO镜像模式安装CentOS7
准备: 一台新台式机(2TB磁盘),将用于安装centos 7,注意安装前请使用工具将磁盘分区先删除. 一个u盘,用户制作老毛桃winpe启动盘. 从www.laomaotao.org下载最新9.3增 ...
- MSF内网信息收集
1. msf通过shell关闭防火墙 Netsh advfirewall set allprofiles state off(关闭防火墙) Netsh advfirewall show allprof ...
- Excel工具(批量生成txt)
Sub txt() Dim i, j, arr(), brr(), myRow, myCol arr = Sheet1.UsedRange myRow = UBound(arr, 1) myCol = ...
- String、StringBuffer、StringBuilder他们的区别
String.StringBuffer.StringBuilder他们的区别 String: String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,然后将指针新的对 ...
- go iris框架文件上传下载
在 Iris 框架中,可以使用内置的 iris 包中的 Context 对象来处理文件上传和下载.以下是一个简单的示例代码: package main import ( "github.co ...
- python web自动化-文件上传-亲身实践
文件上传三种方式: (一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传 方法:和用户输入是一样的,使用send_keys 步骤:1.找到定位元素,2,输入文件路径 ele=d ...