人工智能AI与大数据技术实战 公众号: weic2c
从去年开始,陆陆续续学习了大半年的机器学习,现在是时候做个总结了。
在以往的编程经验里面,我们需要对于输入有一个精确的,可控制的,可以说明的输出。例如,将1 + 1作为输入,其结果就是一个精确的输出 2 。并且不论怎么调整参数,都希望结果是2,并且能够很清楚的说明,为什么结果是2,不是3。这样的理念在传统的IT界,非常重要,所有的东西就像时钟一般精确,一切都是黑白分明的。由于这种严格的输入输出,衍生出很多对于程序的自动测试工具,你的程序无论怎么运行,都应该在相同输入情况下,得到相同的,准确的,精确的输出。
但是,如果你进入机器学习的世界,则一切都是基于一个准确率。换句话说,你的模型,允许是不完美的,1 + 1,结果可以是 2.01,也可以是1.98。有时候,如果你的模型要追求完美,则可能出现过拟合的可能性。也就是说,由于你的模型太过于完美,使得模型可以很好的匹配训练用数据,反而失去了通用性,在数据发生变化的时候,发生错误。
举个例子来说吧,如果一个男孩子说喜欢某个女孩子,这个女孩子身高178,籍贯是辽宁抚顺,专业是计算机。如果机器学习发生过拟合的时候,它就会输出这样一个模型
如果 身高 = 178 ,籍贯 = 抚顺 ,专业 = 计算机 则喜欢。
这个模型如果用来匹配一个个例,则这个模型是完美的!
身高在 【175,185】之间
这样的话,模型虽然会把一些男孩子不喜欢的女孩子也错误的标识出来,但是大部分的样本还是可以比较好的预测出来的。
机器学习,很多人认为是一个高科技的IT技能,其实,一个好的机器学习模型,领域里的业务知识还是很需要的。而且现在很多工具可以帮助大家建立程序,完全不需要什么编程的技能,只需要给机器“喂”数据,调节参数,就可以获得结果了。
在机器学习中,有一些复杂的概念,往往都是由一个简单的概念扩展开来的。
单个感知机是弱小的,但是,如果感知机有成千上万个,然后一层一层一层叠加起来呢。。这些小家伙就变成强大的神经网络了
贝叶斯,马尔科夫同志则共享了很多关于概率的机器学习。
贝叶斯最大贡献如下。
在“你家隔壁住着老王(B)”的前提下,“你的孩子长得像隔壁老王(A)”的概率
等于“你的孩子长得像隔壁老王(A)”的前提下,“你家隔壁住着老王(B)”
当然这个正统说法要牵涉到先验概率,后验概率。
最快梯度下降则几乎出现在所有的迭代算法中。
机器学习和自然语言处理也是密不可分的。在很多自然语言处理中,将大量使用机器学习的概念。马尔可夫链和条件随机场,狄利克雷分布这些都是自然语言处理的基础理论。
在机器学习里面,有一大类叫做神经网络。神经网络里面,大名鼎鼎的有卷积神经网络CNN,循环神经网络RNN。其中,卷积神经网络在图形图像处理方面,有着很出色的成果。例如识别图像的功能,通过基于CNN的深度学习技术,现在机器已经可以识别出很多东西了。下面这个图是电视剧《三生三世 十里桃花》的剧照,使用Tensorflow和ImageNet,机器告诉我们,这张图是 kimono(和服)的可能性是 0.86。gown(长外衣;外罩)0.05.
如果是一些简单的图片,例如键盘,鼠标,水杯等,识别准确度还是蛮靠谱的。
神经网络的如果要用图来表示的话,应该就是下面这个样子的。最左边的是输入,最右边的是输出。然后中间有很多隐藏层。
这个图中隐藏层只有一层,但是大部分用于真实计算的神经网络,都会有很多隐藏层。
无论是简单的,还是复杂的神经网络,其中最小的单元就是感知器。
既然是白话,那么我们就用讲故事的方法来说一下。(假设读者已经阅读了上面的文章)
如果教务处说,我们是外国语学校,对于英语成绩比较看重,则我们给予这样的英语比较高的权重。
然后,由于这次考试难度比较高,则每个人都加5分 (这个其实叫做 偏置项 bias)
X0 = 1 W0 = 5
成绩 = X0 * W0 + X1 * W1 + X2 * W2 + X3 * W3
OK,这样一个简单的感知机就做成了。在权重(W0,W1,W2,W3)和 Step Function(合格标准)定下来的时候,它可以根据输入(各科成绩),求得输出(是否合格)了。
例如:
语文成绩 50 * 0.3 = 15
语文成绩 80 * 0.3 = 24
当然,一般来讲,感知机往往是激活函数(StepFunction)是事先决定的,作为训练数据的输入,输出是已知的,权重则是需要通过机器学习来获得的。我们的例子中,合格标准是事先决定的,60分及格,然后给出一部分数据:某些人的语文成绩,数学成绩,英语成绩 ,是否合格,然后通过机器学习,将各科的权重计算出来,获得一个模型。然后利用这个模型,通过输入 语文成绩,数学成绩,英语成绩,来判定是否合格。
当然,如果在训练数据比较少的时候,这个权重可能计算的不是很准确,数据越多,权重越准确。
语文成绩 50 数学成绩 40 数学成绩 40 附加分 5 合格
能够满足这样条件的权重有很多很多,所以机器学习的结果可能不是很好。
最后再回来说一下,为什么叫感知机,其实最简单的,最原始的时候,感知机的输出就是 0(不合格) 或者 1(合格).结果能被感知,或者不能被感知。当然,随着研究的深入,则输出形式也越来越丰富了,不仅限于是否,也可以是数值或者其他形式的东西。例如,感知机做线性回归的时候,则是数值作为输出。
搜索公众号添加: weic2c
人工智能AI与大数据技术实战
长按图片,识别二维码,点关注