1 min to read
个人对机器学习的理解
一个比较官方的定义:
将一个任务记为T,经验记为E,对任务执行结果的评价记为P;
如果一段程序可以通过执行任务T,来获得经验E,进而使得执行结果的评价标准P越来越好;这个过程可以定义为机器学习
视角一:
个人理解机器学习的本质就是利用数学函数对数据进行拟合;
对于机器学习系统来说,都是需要有输入和输出的;一般来说无论是什么类型的输入(文本、图像、音频等)最终都需要转化为数字类型的数据作为算法输入,而算法输出的也是数字,需要后续转为人类可理解的信息。算法实际上可以理解为一个函数,将输入转化为输出的过程。
与传统的数学上根据已知数据,求解函数不同的是:机器学习研究的数据是很难找到一个函数可以完美拟合所有数据的,所以是需要找到一个最优的函数,可以对数据拟合的尽量好;这里好与劣的标准一般是用一个叫损失函数的值公式表示;
例如:对所有样本点的输入使用函数进行转换,可以将函数的输出与真实值之间做差然后求和再求平均值,如果这个值越小,则说明函数的输出与真实值之间的误差越小,表明函数的效果越好。这个对差值求和再求平均值的韩式就叫损失函数
另一个不同点是,最优函数不是一次求解得出的;最优函数的求解,主要是求解函数的参数,例如线性函数 y=k*x+b 就是求解参数k 和 b的最优值,使得损失函数最小,求解过程是这样的:首先赋予k和b一个初始值,然后利用一些数学原理,去更新k和b的值,使得损失函数变小一些;需要更新多次才能得到k和b的近似最优值。至于为什么不能一次更新到,了解了更新原理之后就会理解。
视角二:
机器学习在拟合现有(历史)数据的同时,更加强调泛化性能;只有具备很好的泛化性,才能对未知数据输出预期之内的预测效果;这样才能有价值;
视角三:
机器学习之所以成为了一个比较垂直的技术领域,其关键核心点在于机器学习过程设计与选择,包含了预测函数形式的选择(比如:一次函数、二次函数、指数函数、分段函数等)、函数参数的设计与选择、优化参数方法的选择、损失函数的选择与定义等专业领域知识;
另外也可以从统计学的理解,通过搜索、整理、分析、描述数据等手段,以达到推断所测对象的本质;
关于机器学习中的特征工程:
随着深度学习的兴起,对机器学习领域的特征工程工作有所弱化,但实际应用中还是需要花费精力去做特征工程,因为机器对数据没有理解与认知,如果在人的理解之上,让机器学习,效果则会更好。
算法工程师应该具备的能力:
- 学习能力(所有程序员甚至所有岗位都应该具备),技术发展相对较快,新算法、新框架以及技术的成熟度上来讲,都是会有日新月异的发展;
- 数学能力,机器学习本周式利用数学上的函数来拟合数据,函数参数的求解基本都是用的数学知识
- 工程能力,算法需要靠代码实现,并在机器上运行。本质上也是程序员的工作。
- 业务场景的理解能力与数据敏感性(数据sense),充分理解业务场景对于特征工程以及效果评价有很大帮助。
- 耐心与用心,面对相对枯燥的数据处理、特征尝试、参数调教、模型选择等等都是需要花费时间去尝试,并且很可能尝试很长时间没有取得进展
Comments