文章目录

  • 1 学习资源参考及个人评价
  • 2 要解决的疑惑
  • 3 M-P神经元模型
  • 4 感知机 与 逻辑斯蒂回归
  • 5 两层神经元模型(无隐层)
    • 5.1 网络结构
    • 5.2 参数调整
      • 5.2.1 损失函数
      • 5.2.2 梯度下降
  • 6 基于简单逻辑回归模型的NN实现

1 学习资源参考及个人评价

神经网络简介:
非常简单,会粗略讲一些名词概念、网络结构、模型的运行流程。
机器学习-实现简单神经网络:
只看了理论基础,感觉还好,但是个人感觉没有 西瓜书+南瓜书 讲的清楚吧。主要是对 感知器 和 适应性的线性神经元 做了区分。没有跟着它一起码代码,看见评论区说代码错误有点多。
深度学习之神经网络入门最佳路径:
挺好的,了解了一下网络结构相关的,并利用CIFAR10的数据集实战,通过搭建了简单单个神经元网络及多个分别实现二分类和多分类。其中,还了解了一些tensorflow的搭建,写法流程等。
西瓜书+南瓜书:主要看了5.1&5.2,了解了感知机网络结构和学习算法,为后面多层网络的进阶学习打下了基础。
李航的统计学习方法
浅析感知机(一)–模型与学习策略

本篇博客旨在记录自己的学习轨迹,若有错误,希望希望各位看官批评指正,共同进步。

2 要解决的疑惑

  1. 神经元的网络结构
  2. 什么是激活函数?为什么需要?
  3. 什么是损失函数?为什么需要?
  4. 什么是梯度下降?为什么需要?
  5. 什么是感知机逻辑斯蒂回归?两者有什么区别?

3 M-P神经元模型

NN实际上是一个仿生学的产物,它模仿了生物学神经网络的结构功能,从而抽象成了最经典的最简单的M-P神经元模型

它收到来自n个其他神经元传递过来的输入信号,通过带权重的连接进行传递。
然后,神经元接收到的总输入值(求和)与其阈值进行比较,最后通过一个函数(图中为f)处理来产生神经元的输出。
说到这里,就顺便结合图解释一下名词变量:

  • w:连接权重
  • x:输入的值,即问题中具体抽取出来的特征
  • θ{\theta}θ:偏置,阈值
  • f(*):激活函数

这里,为什么需要激活函数呢?
=》激活函数是用来处理产生神经元的输出的,提供规模化的非线性化能力,即将线性组合变成非线性的结果。

4 感知机 与 逻辑斯蒂回归


因此,感知机模型与逻辑斯蒂回归模型本质上是对使用的激活函数的区分。

这里补上逻辑斯蒂回归模型使用的函数:
sigmoid(x)=11+e−x{sigmoid(x)=\frac{1}{1+e^{-x}}}sigmoid(x)=1+e−x1​
感知机的阶跃函数显然具有不连续、不光滑的特点,所以通常用sigmoid函数作为激活函数。
而sigmoid函数可以把江大范围内变化的输入值挤压到0-1区间的输出值范围。
同时,sigmoid函数还有一个很好的性质:
f′(x)=f(x)(1−f(x)){f^{'}(x)=f(x)(1-f(x))}f′(x)=f(x)(1−f(x))
这个性质在后续的BP算法推导中占据很重要的地位。

5 两层神经元模型(无隐层)

5.1 网络结构

无论是感知机模型还是逻辑斯蒂回归模型,都能使用两层的神经元模型(一层为输入层,一层为输出层,且仅有输出层的神经元进行激活函数处理,即只拥有一层功能神经元)来进行描述:(以二输入的为例)

再观察,原始的激活函数处理公式:
y=f(∑i=1nwixi−θ){y=f(\sum_{i=1}^nw_ix_i-\theta)}y=f(i=1∑n​wi​xi​−θ)
这里的阈值θ{\theta}θ其实可以进一步处理,从而提高模型的泛化能力,即看成−1∗θ{-1*\theta}−1∗θ,这样θ{\theta}θ可以作为一个新的输入,而其连接权重则固定为-1.如此,权重和阈值的学习可以统一为权重的学习。

5.2 参数调整

最终目的是得到一个好的泛化模型,即得到一组合适的权重参数,因此就需要根据每次的结果对当前的参数进行调整,从而得到最优。

那,如何评价最优呢?=》损失函数
如何求解损失函数的最优解?=》梯度下降

5.2.1 损失函数

根据南瓜书的相关推导并基于我们之前说的泛化模型,最终构造下面一个损失函数并简化为仅有权重参数:
min⁡wL(w)=min⁡w∑xi∈M(y^i−yi)wTxi{\min_w L(w) = \min_w \sum_{x_i \in M }(\hat{y}_i -y_i )w^T x_i}wmin​L(w)=wmin​xi​∈M∑​(y^​i​−yi​)wTxi​

补:这里西瓜书和南瓜书中引入了一个“**线性超平面”**的概念。因此,可以知道后续为什么要引入多层网络(含隐层)了。

5.2.2 梯度下降

梯度下降通过调整参数来使得目标函数(损失函数)最小。
而普通的想法会有几个:

  • 解方程,解出最小参数

    • 参数太多
    • 仅对当前数据集上有效
  • 设置固定step模拟
    • 容易错过最小值点
    • step难以固定设置
  • 类比“下山算法”
    • 找到一个方向
    • 适当的走一步

这里的梯度下降就是类比“下山算法”。
当然,从这个名字就可以看出,通过求梯度,以目标的负梯度方向对参数进行调整:(以感知机为例)
∇wL(w)=∑xi∈M(y^i−yi)xi{\nabla _wL(w)=\sum_{x_i \in M}(\hat{y}_i-y_i)x_i}∇w​L(w)=xi​∈M∑​(y^​i​−yi​)xi​
w←w+Δw{w\leftarrow w+\Delta w }w←w+Δw
Δw=−η(y^i−yi)xi{\Delta w = - \eta (\hat{y}_i-y_i)x_i} Δw=−η(y^​i​−yi​)xi​
这里是采用随机梯度下降算法,极小化过程中不是一次使 M 中所有误分类点的
梯度下降,而是一次随机选取一个误分类点使其梯度下降。
其中,这里的′eta{'eta}′eta是学习率,是可以人为设定的(当然这个设定肯定也有一定技巧,等后续自己熟练了再讲一讲):

6 基于简单逻辑回归模型的NN实现

这个是根据 深度学习之神经网络入门最佳路径 这门课程来进行学习的,跑了跑代码,理解了一下流程等。因为这个课程是免费,且可以跟着码代码,所以具体代码这里就不放了。
从二分类到多分类的简单实现,仅需要对网络结构的输出层的神经元个数进行相应的添加即可。同时,权重W从向量变成矩阵,同时输出的结果也从单个值变为向量格式。

神经网络入门学习-一些基本的概念+不含隐层相关推荐

  1. 深度神经网络入门--学习环境搭建

    深度神经网络入门--学习环境搭建 安装环境 安装环境 1.ubuntu16.04 安装Anaconda及搭建环境安装TensorFlow深度学习框架-- CPU 链接:https://blog.csd ...

  2. Altium Designer入门学习笔记4:PCB设计中各层的含义

    Altium Designer入门学习笔记4:PCB设计中各层的含义 阻焊层:solder mask,是指板子上要上绿油的部分:因为它是负片输出,所以实际上有solder mask的部分实际效果并不上 ...

  3. 深度学习(四)卷积神经网络入门学习(1)

    卷积神经网络入门学(1) 原文地址:http://blog.csdn.net/hjimce/article/details/47323463 作者:hjimce 卷积神经网络算法是n年前就有的算法,只 ...

  4. 深度学习笔记:手写一个单隐层的神经网络

    出处:数据科学家养成记 深度学习笔记2:手写一个单隐层的神经网络 笔记1中我们利用 numpy 搭建了神经网络最简单的结构单元:感知机.笔记2将继续学习如何手动搭建神经网络.我们将学习如何利用 num ...

  5. BP神经网络入门 学习笔记

    1.BP神经网络的基本概念 1.1神经元模型 1.2神经网络结构 1.3神经元激活函数 2.BP神经网络的基本工作过程 2.1正向传递 2.2反向传递 3.BP神经网络的注意点 3.1超参:学习率(学 ...

  6. 深度学习(三十八)卷积神经网络入门学习(2.0)

  7. 神经网络 深度神经网络,双隐层神经网络结构

    如何创建两个隐藏层的BP神经网络 我自己的总结是:1,隐层的神经网络算法1.1构造方法选择首先使用三个隐藏层的数量来确定三个隐藏层数找到的最小值和最大值的值,然后从最小来验证模型的预测误差,直到它达到 ...

  8. 【深度学习】人人都能看得懂的卷积神经网络——入门篇

    近年来,卷积神经网络热度很高,在短时间内,这类网络成为了一种颠覆性技术,打破了从文本.视频到语音多个领域的大量最先进的算法,远远超出其最初在图像处理的应用范围. 卷积神经网络的一个例子 在客流预测.信 ...

  9. 《MATLAB神经网络超级学习手册》——第2章 MATLAB基础 2.1 基本概念

    本节书摘来自异步社区<MATLAB神经网络超级学习手册>一书中的第2章,第2.1节,作者:MATLAB技术联盟 , 刘冰 , 郭海霞著,更多章节内容可以访问云栖社区"异步社区&q ...

  10. 深度学习神经网络入门案例详细解析-鸢尾花案例

    神经网络设计过程 案例: 鸢尾花分类 鸢尾花三种类别: 三种: 狗尾巴 杂草 小腹肌 通过搭建一个神经网络来对鸢尾花进行分类 收集花朵 的特征值: 四种 花萼长 花萼宽 花瓣长 花瓣宽 以及: 三种输 ...

最新文章

  1. 一文详解计算机视觉的广泛应用:网络压缩、视觉问答、可视化、风格迁移等
  2. 利用sharding-jdbc分库分表
  3. Solrj实现增删改查
  4. leetcode 714. 买卖股票的最佳时机含手续费(dp)
  5. iis php5.4配置_PHP5.4 + IIS + Win2008 R2 配置
  6. Android中对已安装应用的管理实现
  7. 拓端tecdat|python对NOAA天气数据格式转换
  8. cognos报表导出excel_Cognos制作报表常见问题
  9. 程序员100套简历模板,全网最全
  10. ctf夏季集训结训赛-简单题writeup
  11. TextView 加下划线 、 中划线
  12. linux掩码,linux文件权限掩码umask
  13. 目标检测算法DSSD的原理详解
  14. mysql查最高薪水,使用子查询查找MySQL Employee表的最高和第二最高薪水?
  15. 完整技术帖,看美剧学英语之法
  16. stm32mp157开发板常用系统工具使用
  17. 2016年4月1日有这么多新规定诞生,有影响你的生活吗?
  18. uniapp中开发模拟拼多多sku轮播选择器
  19. 张朝阳的硬核物理课,给知识直播打了样
  20. Android 仿淘宝京东商品详情视频+图片与图片第一帧获取

热门文章

  1. 量化投资与信用风险机器学习建模
  2. 数据--第27课 - 初始斗转
  3. Linux交换空间(swap space)
  4. Robot framework之元素定位实战
  5. 消息中间件activemq-5.13.0安全验证配置
  6. ZeroMQ之Request/Response (Java)
  7. Android入门学习3
  8. pycharm调试GreenOdoo
  9. 宫崎峻《となりのトトロ》(龙猫)全剧本(中日对照)(2)
  10. Head First Design Patterns(深入浅出设计模式)-设计模式介绍