本文是机器学习系列的第一篇文章, 在写这篇文章以前, 我思考了好久,该如何开始这一系列的内容..
我好久之前看过一篇ted上讲解的视频给了我启发.
本篇文章将用我认为最好理解的方式介绍机器学习的基本原理, 力求让没有任何基础的小伙伴也可以理解 在机器学习中, 咱们是如何训练计算机"学习"的.
下面咱们看看一个计算机视觉处理模型的最基本功能:
将上面的图片识别为"bird", 对于人脑来讲很是简单. 可是对于传统的计算机程序来讲, 这是很是很是困难的任务.机器学习
那么, 这幅图片究竟是通过什么样的计算获得了"bird"这个单词的呢?
对于人来讲, 识别过程大概以下如所示:
图片被视觉神经元感知, 通过一层又一层的神经元(乱七八糟的神经元),发生一次又一次的变化; 你能够想象一层又一层的神经元就是一个又一个的数学函数, 从上一层神经元数据加工后, 输出到下一层神经元.....函数
最终一组神经元在咱们电脑里面打开了一个开关, "叮!!!" 的一下, 一盏灯就亮了, 忽然冒出了4个字母"bird".学习
而后, 牛逼的科学家们, 把 图片的像素点, 人类的神经系统, 还有鸟, 分别抽象成了:$x,w,y$. 像下面的图片展现的同样:
在图片中,有上百万上千万的大量的x, w, 和少许的输出: y, 毕竟得出的结果:'bird'只是4个字母.spa
以后, 科学家们又假设了一个公式: $X '*' W = Y$, 在
"乘以"
上加上了引号
,
表示这个
"乘以"其实是一系列复杂的数学运算.
这样一个等式:$Y = X '*' W$, 只要获得其中,2个值,就能解出另一个值, 很是简单.视频
咱们有x, 而且咱们知道y, 咱们很容易就可以计算出w, 而后把w告诉计算机, 用在其它的输入:'X'上, 经过X '*' W = Y这个等式, 把Y计算出来.
可是这里的乘号'*', 是一个很是复杂的数学过程, 他可能并不存在逆运算(乘的逆运算是除), 咱们不能用直接在两边同时乘以 '1/X'的方式来计算W.
那到底应该怎么计算这个W呢? 为了说明这个过程, 咱们用一个更简单的栗子: 如今
假设 输入值 x = 3, 输出值:y = 6
$3 * w = 6$
上面说了, 咱们
不能直接经过等式两边同时除以3来作这件事.
使用一种
不使用除法的方式来计算,
把y移到等式左边, 随机假设一个w 的值, 而后把获得的输出值y' - 真实值y 的结果, 做为偏差lossing_value, 就像下面的等式:
$3 * w - 6 = y'$
$lossing\_value = y' - y$
当这个lossing_value的值知足必定条件, 或者说, 变得很是很是小的时候, 咱们说这是了一个比较有用的, 知足条件的w.
那么, 具体过程是如何作的呢?, 咱们继续使用上面的栗子:
上面的栗子中, y=0, x =3, 如今随机假设一个值 w = 5, 咱们看, 这个w和lossing_value实际上是存在必定关系的.
$w = 5$
$3 * w - 6 = 9,\ \ \ y' - y = 9,\ \ \ lossing\ too\ large, try\ agin: w-0.5$
$w = 4.5$
$3 * w - 6 = 7.5,y' - y = 7.5,lossing\ too\ large, try\ agin: w-0.5$
$w = 4$
$3 * w - 6 = 6,\ \ \ y' - y = 6,\ \ \ lossing\ too\ large, try\ agin: w-0.5$
$......$
$w = 2$
$3 * w - 6 = 0,\ \ \ y' - y = 0,\ \ \ lossing\ small\ than\ 0.001,\ ok ,\ stop!$
以上这个过程, 就是咱们训练计算机学习整个过程.
在真实的状况下, 咱们须要
大量的x, 以及大量的y, 咱们不断的告诉计算机x, 和, y, 让计算机不停的迭代, 最终计算机能够获得一个知足条件的w, 使得lossing_value很是小.
下面说一些专业术语:
1) 每一次迭代, 调整w的值, 使得lossing_value更小. 这个过程叫: 梯度降低, 以前咱们随便选择了一个w, 而后再调整, 这就是
"随机梯度降低".
2) 在真实的训练中, 并不会直接使用$y' - y = lossing\_vlaue$, 毕竟 这样计算出来的$lossing\_value$多是负值, 可是偏差却更大了.
衡量偏差大小有一系列专门的函数, 好比 使用方差:
$lossing\_value = \frac{\sum_{i=1}^m\sqrt{(y - y_i)^2}}{m}$
还有交叉熵..等等.
嗯...讲这里, 训练机器进行学习的最基本原理讲得就差很少了. 整个过程很是容易理解, 真实应用场景中, 也差很少是上面这个流程, 但状况会更加复杂一点.
你们不用担忧, 这些内容后面有时间我也会慢慢写.
若是有条件能够看看个视频, 这篇文章不少内容就是从这个视频上来的.
抽空来完成这些文章, 对本身的学习来讲是一种巩固, 但的确也会耗费很多精力. 若是你们转载文章, 请尊重做者, 注明文章来源.
若是可以您以为文章对您有帮助, 您除了能够留言点赞以外, 还能够扫描下面的二维码, 对我进行
打赏!