前言
机器学习的本质:让机器自己生成一个函数
激活函数
定义:激活函数的作用是引入非线性,使得神经网络可以对非线性关系进行建模和学习。如果没有激活函数,多层神经网络就会退化成一个单层线性模型,无法表达复杂的非线性函数。
- sigmoid函数
作用:用sigmoid函数来逼近S型曲线函数
- ReLU函数
线性函数的变形,f = c·max(0.b)+wx
一、机器学习的分类
1.回归regression:函数的输出是一个数值(标量)。
2.分类classification:从选项中选择一个作为输出。
二、机器学习怎么寻找函数
1.我们写出一个带有未知参数的函数(模型)
例如:y = wx + b
feature:x和y,是已知的。
weight:w
bias:b
- 定义loss函数L(w,b)
- 最佳化
找出一个w和b,使得Loss函数最优化。
- 如何寻找w的值?
1.先固定b的值,变化w的值,找到使Loss函数最小的w值。
2.先随即寻找一个数值w0,计算在w0位置的Loss函数的切线斜率。若斜率是正数,则减小w的值(左移);若斜率是负数,则增大w的值(右移)。即在变化的过程中,始终朝着使Loss函数变低的方向移动。
3.w值的变化取决于两件事:斜率和学习率。
若斜率大,则变化的数值大;若斜率小,则变化的数值小。
η(学习率):自己设定的。
超参数:自己设定的参数。
总结:如何在二元函数中寻找最小值。
- 如何更新参数
将训练集数据分成一个个batch,每一个batch生成Loss函数,然后更新参数;再用下个batch生成Loss函数来更新参数,直到所有的batch都训练一次,叫做一个epoch。每次更新参数叫做一次update。
三、神经网络&深度学习
Neural Network:由多个neuron组成的neural network。
Deep Learning :每一排neuron叫做一个layer,neuron叫做hidden layer,整套技术叫做deep learning。
四、deep > shallow
- 使用deep(纵向)比使用shallow(横向)网络更好
- 以ReLu函数举例,当需要的输出有2^k 个锯齿状函数时,只需要进行k个layer。而shallow需要2^k 个参数。
- 复杂的模型容易overfitting(过拟合)