最近在跟着Datawhale组队学习打卡,学习李宏毅的机器学习/深度学习的课程。
课程视频:https://www.bilibili.com/video/BV1Ht411g7Ef
开源内容:https://github.com/datawhalechina/leeml-notes
另外,最近我也在学习邱锡鹏教授的《神经网络与深度学习》,会补充书上的一点内容。
1. 机器学习的步骤
在听课之前,我使用过XGBoost模型进行预测,只知道把training data, testing data喂给模型,就可以对testing data进行预测了。
1.1 李宏毅老师对机器学习步骤的讲解
李宏毅老师的讲解真的是深入浅出。
机器学习的目标:找一个function,输入一张图片,然后输出图片里面有什么样的东西
机器学习的步骤:
- 在function set(也就是model)中有很多function
- training set告诉机器输入输出是什么;因此,机器可以判断什么是好的function(比如上图中的 f 1 f_1 f1 更好 )
- 使用有效率的演算法可以从function的set里面挑出最好的function,记为 f ∗ f^* f∗
简单的来说,机器学习分为3个步骤
step 1: define a set of function
step 2: goodness of function
step 3: pick the best function
1.2 学习步骤迁移到XGBoost上
根据我自己对机器学习步骤的理解,我再将步骤对应到XGBoost上:
step 1:定义很多回归树
step 2:对回归树进行集成,得到预测的结果
step 3:用目标函数进行优化,找出最好的function
有一篇博客对XGBoost原理的讲解很不错:
xgboost入门与实战(原理篇)
2. 分类问题与深度学习
深度学习是指从有限样例中通过算法总结出一般性的规律,并且可以应用到新的未知数据上。
在课程中,李宏毅教授提到深度学习也可以看做一个分类问题,这是我以前没有考虑过的。以下围棋为例:可以看做是一个十九乘十九个类别的分类问题。