sheng的学习笔记-神经网络

基础知识

基础知识-什么是分类问题

分类问题是根据已有数据,判断结果是正的还是负的(1或者0,比如:

根据肿瘤大小,判断肿瘤是良性的还是恶性的
根据客户交易行为,判断是否是恶意用户
根据邮件情况,判断是否垃圾邮件
下图:横坐标是肿瘤大小,纵坐标:是肿瘤的可能性,可能性大于 50% ,结果是 1 (恶性),小于 50% 结果是 0 (良性),下图中最右边的那个,体积很大,是恶性的可能性非常大

肿瘤有70%可能性是恶性,30%可能性是良性,两者加和为1

基础知识-逻辑回归算法(logsitic regression

逻辑回归算法是解决分类问题的一种,下面是逻辑回归模型,x是肿瘤大小(已知数据),theta是需要训练的参数,一个肿瘤根据两个数据可以知道h(是肿瘤的概率),下图z>0认为是恶性肿瘤

线性决策边界:线右边的是恶性,左边是良性

非线性决策边界:圈外面的是恶性,圈里面是良性

基础知识-多分类(multi-class classification

多分类:上述讲的是二分类,结果只有10,以此扩展为多分类,预测结果有很多可能。

比如预测天气可能是:晴天?阴天?雨天?雪天?分别预测每种情况的可能性,比如是晴天的可能性70%,阴天可能性60%。。。找可能性最大的那个,作为本次数据的结果

基础知识-什么是神经网络

神经网络模拟人类大脑,将大量的输入信息,经过多个节点(每个节点处理一部分)处理(输入层),将结果作为输入传给下个节点(隐藏层,每个隐藏层含多个节点,可以有多个隐藏层),隐藏层的输出传给最后一个节点,并得到结果

适用于数据量大,特征个数多,计算复杂的场景,在语音识别,图像识别等场景应用很广

基础知识-神经网络应用:识别手写数字,智能驾驶

识别手写数字:通过图片转化成数字输入,经过神经网络算法,输出结果数字

智能驾驶:通过观察人类的行驶学习转向,根据摄像头采集的画面画质(车上装传感器),转化成数据,预测出接下来应该是向左,向右,直向行驶(采用神经网络算法,多分类问题应用)

下图左上角第一个横线是驾驶员实际操作,第二个横线是系统预测的操作

计算方法

计算方法-总体方法

实现方法:正向传播计算结果,反向传播更新theta(这里的wb就是theta),直到损失函数最小

1 正向传播

2 计算导数推演

3 逻辑回归计算导数推演

计算实现

计算方法-代价函数( cost function  

肿瘤举例:有了很多肿瘤的数据,训练theta,让预测的结果跟实际结果最相近,当有一个新的肿瘤案例,根据theta就知道新的病例是恶性的可能性有多大,所以我们要做的是找到最佳的theta

过程是:随机初始化参数=>算出预测值=>算出差异(损失函数J=>更新参数=>算出预测值。。重复第二步,直到损失函数足够小

预测值与实际值的差距(叫做代价函数J)越小,代表预测的越准确

参数每次减去J的导数和学习速率乘积,更新自己

计算方法-导数

导数:变量x偏移一个小的单位,结果y变化的倍数,是斜率

直线的斜率是恒定值,曲线的斜率在不同的点不一样

计算方法-正向传播

计算方法-反向传播

反向传播可以让损失函数朝着最小值前进

计算方法-反向传播-梯度检测(选看)

当反向传播和其他算法(梯度下降等)一起工作时,可能会产生一些BUG,导致看起来都正常(比如代价函数在每次梯度都在减小),但其结果的误差很大,这时候需要用梯度检测,注意:在使用梯度检测验证反向传播是正确之后,应该关闭梯度检测,因为这个检测很耗费时间

计算方法-反向传播-随机初始化(选看)

如果初始化的theta都是0,对于x2产生的a1a2是一样的,在反向传播会导致theta1theta2一样,也就是说红色的两个线参数一样,绿色的2个线参数一样(蓝色也一样),虽然它们的值都不是0

参考

吴恩达深度学习和机器学习,关于神经网络部分

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 07:28:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 07:28:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 07:28:05       87 阅读
  4. Python语言-面向对象

    2024-01-25 07:28:05       96 阅读

热门阅读

  1. 深度学习-Pytorch数据集构造和分批加载

    2024-01-25 07:28:05       55 阅读
  2. 【自然语言处理】【深度学习】NLP中的N-gram理解

    2024-01-25 07:28:05       64 阅读
  3. xml与json的区别

    2024-01-25 07:28:05       53 阅读
  4. 算法训练营Day50(动态规划11)

    2024-01-25 07:28:05       60 阅读
  5. 算法第10天|232.用栈实现队列225. 用队列实现栈

    2024-01-25 07:28:05       58 阅读
  6. 不会有人上台阶摔倒吧 3476:【例86.1】 上台阶

    2024-01-25 07:28:05       51 阅读
  7. 【ESP32】Ubuntu2004搭建espressif

    2024-01-25 07:28:05       51 阅读
  8. C++拾遗(三) 引用

    2024-01-25 07:28:05       43 阅读
  9. 2024/1/24 图的基本应用

    2024-01-25 07:28:05       54 阅读