机器学习理解及TensorFlow应用识别手写数字为例机器学习计算机只能处理数字算法如何理解数字可以承载信息案例12345目录特征举例62第一部分机器学习PartONE3AlphaGo人脸识别自动驾驶量化金融机器学习现实应用4什么是学习差好学习不会掌握差变好不会变掌握学习前学习后结果学习学习的特点:自身主动发生变化普通程序:如果效果很差,一定是在人为条件下修改才变好。机器学习:程序运行后,自发的产生变化,自动修改神经网络。人类机器机器学习学习的含义过程5机器学习区别机器学习与传统程序有学习能力传统程序无学习能力传统的编程是人类自己积累经验并将这些经验转换为规则或数学公式然后就是用编程语言去表示这些规则和公式。在进行机器学习时,人类不需要总结具体的规则或公式。只需制订学习的步骤,然后将大量的数据输入给计算机。计算机可以根据数据和人类提供的学习步骤自己总结经验,自动升级。规则+数据=答案答案+数据=规则正确率没有变化正确率不断提升算法决定6演示自动驾驶学习前学习后目的:让计算机学会开车7案例识别手写数字当我给机器输入手写数字的图片时,机器告诉我这个图片是数字几任务实现3输入输出案例当前用一个案例来讲解机器学习的过程,案例包括包括代码,运行演示,该任务的神经网络过程等等8第二部分算法是什么PartTWO9水果重量水果价格122436XYY=2*X算法:输入数字与输出数字之间的关系算法可以理解为公式水果价格跟重量存在什么关系?如果重量等于4,那么价格是?价格是重量的两倍,这就是价格和水果重量的关系这就是一个算法用来处理水果重量和水果价格的关系算法什么是算法10引力公式输入M:物体1质量m:物体2质量r:两物体距离G:引力常量输出F:引力算法算法现实中例子11第三部分数字可以承载信息PartTHREE12数字承载信息10亮度低通过控制电阻数值,控制了灯泡亮度此时,数字就包含着灯泡亮度的信息亮度高5例如:风扇按钮上的数字就是代表风量13第四部分计算机只能处理数字PartFOUR14计算机自然世界数字计算机只认识数字图片信息数字信息计算机识别手写数字任务数字是连通自然世界和计算机世界的渠道15第五部分案例PartFIVE1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.10.20.41111110.700000000000000000.20.50.90.9111111110.60.1000000000000000.71111111111110.2000000000000000.4110.90.50.50.50.50.711110.20000000000000000.10.10.100000.10.9110.7000000000000000000000000.30.9110.600000000000000000000000.30.71110.1000000000000000000000.40.811110.800000000000000000.10.50.80.80.811110.90.40.10000000000000000.20.9111111110.7000000000000000000.20.91111111110.3000000000000000000.10.50.20.20.20.20.20..6110.30000000000000000000000000.1110.30000000000000000000000000.3110.30000000000000000.300000000.40.9110.300000000000000.20.710.100000.10.40.9110.90.300000000000000.8110.60.50.50.50.50.81110.70.3000000000000000.81111111110.90.600000000000000000.20.6111110.80.80.60.200000000000000000000.40.910.70.40.1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000人眼计算机案例手写数字识别手写数字识别机器识别这些数字1728列28行案例图片信息转化为数字信息28列28行图片信息转化为28行*28列的数字,总共784个数字,每个数字代表像素点的亮度18案例整体模型0123456789输入神经网络输出28*28=784数字每个数字代表像素的亮度784数字作为输入输出:图片对应各个数字的概率机器学习的工作就是训练神经网络训练好一个网络需要成百上千甚至上万次学习需要大量的数据作为训练样本TensorFlow:用来生成神经网络当你需要处理特定问题时,用TensorFlow来做出你需要的神经网络神经网络包含输入跟输出之间的特征关系19案例学习样本下图为学习样本:用来给机器进行学习的数据以红圈这个数字为例:逗号左边是输入的数据,逗号右边是这个数据的正确答案20案例神经网络神经元:是一个数字神经网络:包含输入与输出之间关系的特征例:在猫狗识别中,猫有胡须,胡须就是其中一种特征,神经网络包含很多特征。人脑神经网络机器神经网络21案例学习结果输出正确输出错误反向传播函数BP算法BP神经网络(BackPropagation)算对、算错怎么办功能:修正神经网络参数让输出值更加靠近答案加强网络减弱网络增大网络参数减小网络参数计算出概率后,将概率最大的数值作为答案给系统与正确答案进行比较例:如果运算结果是错的,那么此时减弱网络中的参数。相当于,告诉机器,上一次识别时的网络路径是错的。减小网络参数后,机器下次走这条路径的概率会减小结果上来看机器犯上次这条路径错误的可能性就越来越小。最终就实现了学习。22案例完整过程手写数字图片正确答案学习之前,把数据给机器这个数据包括两个东西1.手写数字图片,也就是机器需要识别的内容2.这个手写数字图片对应的正确答案,用来告诉机器这次学习是否正确例如:识别手写5,正确答案是5手写5,这张图片有28行*28列的像素,总共784个像素每个像素位置上的亮度用数字表示,也就是总共784个数字,这784个数字就代表手写图片这784个数字作为输入,给到神经网络进入神经网络后,通过计算会输出对应数字的概率大小例如:输入手写5,输出是0到9的概率大小,结果显示概率最大的数字是6,此时机器认为,这张图片83%可能是6。所以把6作为答案给到系统,但正确答案是5。这时,用反向传播函数,去修改神经网络的参数,使神经网络的运算结果更加靠近正确答案。每次学习会修改一下参数。学习一次修改一次。这样神经网络的参数就会使运算结果更加靠近正确答案。经过上千次学习后,机器就学会了如何识别一张图片数据包含运算结果识别5为例23第六部分特征举例PartSIX24苹果西瓜特征颜色纹路形状红色绿色有条纹无条纹不规则圆或椭圆特征用来区分事物图片识别的任务中,特征用来区分图片的差异例如机器用红色绿色区分苹果和西瓜等等现实中其他问题也一样例如:识别猫狗、识别人脸、识别声音等等,找到特征就能够区分它们25特征1.颜色2.纹路3.形状特征4特征5…….26第七部分传统程序区别PartSeven27