简易介绍机器学习的方法和人工神经网络(CNN(卷积) RNN(循环) LSTM-RNN)
(一)机器学习方法
机器学习就是模仿人类学习过程
“虽然还没人提及,但我认为人工智能更像是一门人文学科。其本质,在于尝试理解人类的智能与认知。”——塞巴斯蒂安·特伦(Sebastian Thrun), 2013
监督学习 supervised learning; 告诉数据和结果(人脸识别)
非监督学习 unsupervised learning;
半监督学习 semi-supervised learning;
强化学习 reinforcement learning;机器练习投篮
遗传算法 genetic algorithm.
(二)生物神经网络与人工神经网络的区别
生物神经网络:在不断刺激下会自我形成反射弧,最终达到在一定的刺激下就会做出相应反应
人工神经网络:有固定的神经网络系统,不会产生新的神经连接。如何完成学习呢?就应该把数据一次次放入这套人工神经网络系统中,当信号传递后,判断机器是否做出正确的动作,来不断修改人工神经网络当中的神经元强度。这种修改方式在专业术语中叫做“误差反向传递”。就是看作是再一次将传过来的信号传回去, 看看这个负责传递信号神经元对机器产生相应动作到底有没有贡献, 让它好好反思与改正, 争取下次做出更好的贡献.
(三)卷积神经网络
卷积神经网络(CNN):卷积神经网络在图像和语音识别
方面进行运用(人脸识别)
卷积: 褶积(又名卷积)是一种积分变换的数学方法
卷积在神经网络应用:卷积也就是说神经网络不再是对每个像素的输入信息做处理了,而是图片上每一小块像素区域进行处理。也就是通过对一小块像素区域分析处理,得到相应数字信息。
例如:卷积神经网络在人脸识别中的应用:
第一层:卷积神经网络有一个批量filter, 持续不断的在图片上滚动收集图片里的信息,每一次收集的时候都只是收集一小块像素区域, 获得的边缘信息。
filter(过滤器): 过滤器就是影像中不断移动的东西, 他不断在图片收集小批小批的像素块, 收集完所有信息后, 输出的值, 我们可以理解成是一个高度更高,长和宽更小的”图片”. 这个图片里就能包含一些边缘信息.
第二层:通过对边缘信息的第二层卷积处理,获得了眼睛,鼻子,耳朵…的信息
第三层:再通过对五官的卷积处理,获得对整个人脸的信息
最后我们再把这些信息套入几层普通的全连接神经层进行分类, 这样就能得到输入的图片能被分为哪一类的结果了.
池化(pooling):在每一次卷积的时候, 神经层可能会无意地丢失一些信息. 这时, 池化 (pooling) 就可以很好地解决这一问题. 而且池化是一个筛选过滤的过程, 能将 layer 中有用的信息筛选出来, 给下一个层分析. 同时也减轻了神经网络的计算负担
(四)循环神经网络(RNN):
在人脑中也产生其实也有循环神经网络
例如:我们在识别名字,我们只有当按照一定的顺序和字符,而且每一次对一个字的识别,都要把上次的上个字的识别的结果放到一起分析,才能识别名字和人相比配。
每次新数据的分析要把上一次数据分析结果调用在一起,一起分析。 如果继续分析更多的有序数据 , RNN就会把之前的记忆都累积起来, 一起分析.
用数学语言来说就是 每次 RNN 运算完之后都会产生一个对于当前状态的描述 , state. 我们用简写 S( t) 代替, 然后这个 RNN开始分析 x(t+1) , 他会根据 x(t+1)产生s(t+1), 不过此时 y(t+1) 是由 s(t) 和 s(t+1) 共同创造的.
LSTM-RNN:
LSTM: long-short term memory 中文叫做 长短期记忆
LSTM-RNN是对RNN的一种改良,因为RNN比较容易遗忘信息。
为什么RNN容易遗忘信息?
因为RNN要对上一次分析的信息进行记忆,到最后分析结果时势必会产生误差,而且在 反向传递 得到的误差的时候, 他在每一步都会 乘以一个自己的参数 W. 如果这个 W 是一个小于1 的数, 比如0.9. 这个0.9 不断乘以误差, 误差传到初始时间点也会是一个接近于零的数, 所以对于初始时刻, 误差相当于就消失了. 我们把这个问题叫做梯度消失或者梯度弥散 Gradient vanishing. 反之如果 W 是一个大于1 的数, 比如1.1 不断累乘, 则到最后变成了无穷大的数, RNN被这无穷大的数撑死了, 这种情况我们叫做剃度爆炸, Gradient exploding.
LSTM-RNN比RNN相比多出了三个控制器(输入控制, 输出控制, 忘记控制),在内部还多出了控制全局记忆。我们把粗线想象成电影或游戏当中的 主线剧情. 而原本的 RNN 体系就是 分线剧情. 三个控制器都是在原始的 RNN 体系上, 我们先看 输入方面 , 如果此时的分线剧情对于剧终结果十分重要, 输入控制就会将这个分线剧情按重要程度 写入主线剧情 进行分析. 再看 忘记方面, 如果此时的分线剧情更改了我们对之前剧情的想法, 那么忘记控制就会将之前的某些主线剧情忘记, 按比例替换成现在的新剧情. 所以 主线剧情的更新就取决于输入 和忘记 控制. 最后的输出方面, 输出控制会基于目前的主线剧情和分线剧情判断要输出的到底是什么.基于这些控制机制。
其实人工神经网络就是把人脑的思维程序化
【参考文献】1.https://www.zhihu.com/question/22298352
2.https://mofanpy.com/tutorials/machine-learning/ML-intro/RNN/