初步了解机器学习-[pytorch]
前言
本系列文章,将会围绕机器学习的原理和方法,基于pytorch的实现进行。同时也会以简单易懂的方式讲述语音识别,图像识别,AlphaGo的原理及其实现。同时也会持续附上大量关于机器学习的论文资料,欢迎大家持续追更。
本篇文章是个人机器学习第一次总结与分享,本篇内容多为介绍机器学习,具体代码后续文章会持续推出。参考2021李宏毅 机器学习课程,《Deap Learning with Pytorch》。
以下是本篇文章正文内容,下面案例可供参考。
一、机器学习是什么?
你想过当下热门的语音识别,图像识别,AlphaGo等技术是如何实现的?Machine learning就包括Regression,Classification吗?
新大陆来咯!
人工智能,通常由人完成的智能任务的自动化。
机器学习是人工智能的一个子领域。
用现代技术自动提取特征又是深度学习的领域。
传统编程是基于数据和规则输出结果,机器学习重在学习规则。
有没有感觉很神奇?
二、机器学习的三个步骤
可以考虑一下如何把大象放进冰箱里。
1.Function with unknown.(找一个带未知量的函数)
先打开冰箱门。
举一个简单的函数模型,后期会专门介绍激活函数。
x代表feature(特征,也就是输入)
w代表weight(权值)
b代表bias(偏差)
简单理解:给一个输入,加上一个权值,也就是预测可能的比例,这个比例可能存在一些误差,在加上一个偏差来弥补。
2.Define Loss from Training data(根据训练数据,求出损失函数。)
把大象塞进冰箱里。
Loss:是一个带参数的损失函数。
什么意思?
给你的模型一个系列的值,让模型得出结果,再和真实结果比较,通过某种标准最后得到Loss。
某种标准有MAE,MSE,Cross-entropy等,后续会专门介绍。
3.Optimization(优化)
关上冰箱门。
这里采用的是**Gradient Descent(梯度下降)**的方法。
再次回顾最开始提出来的简单模型,这个模型中的w和b是我们不知道的,梯度下降就是随机找一个w和b然后根据导数方法找到使Loss最小的一组值。
具体步骤:
(1)pick an initial value.(随机找一个值)
随机找一个w[0]
(2)Compute gradient. (求一阶导数)
以w为例子,求w[0]处的导数值,注意我们是想让Loss最小,所以有
导数范围 | 移动方向 |
---|---|
小于0 | 正方向(+) |
大于0 | 负方向(-) |
关于导数等于0的情况,我会在后续机器学习优化中专门讲解,你可以现在知道,这个导数=0对整个操作没有太大的影响,他可以通过某种方式继续移动。
(3)Update. (更新)
红色这个参数叫做超参数,是我们自己输入的。
当然我们可能会出现这样的情况
这种情况怎么办呢?大家可以先思考一下,后续专门针对这个问题做文章。你可以想一下如何避免或者走出这种悲伤的小谷底呢?
在这里大家需要明白:
1.你给定的带未知数的模型的参数,是机器学习要求自己去生成学习的。
2.Loss函数长什么样子,现在是根据你的模型结果和真实值来决定的,这个也是机器学习学习的结果,你可以理解为这个函数是一个中间过程,我们要让他最小。
三、总结
其实把大象放进冰箱里很简单。
一共就三步,机器学习其实Just easy。
那么,刚刚的例子中,我们有的是已经知道的数据,我们做机器学习是为了测试未知的数据,未知数据准吗?那什么是测试数据?训练数据?
刚刚的模型是一个要么递增,要么递减的函数?现实生活怎么会有这么特殊的情况,其他情况呢?
梯度下降的方法真的靠谱吗?
本系列文章,将会围绕机器学习的原理和方法,基于pytorch的实现进行。同时也会以简单易懂的方式讲述语音识别,图像识别,AlphaGo的原理及其实现。同时也会持续附上大量关于机器学习的论文资料,欢迎大家持续追更。