新智元推荐
来源:知乎
作者:mileistone
【新智元导读】谷歌最近推出的“深度学习速成课程”很火,虽然这门课程是为没有任何机器学习经验的初学者设计的,但已经跨过“初学者”门槛的专业人员也能在课程中得到启发,验证自己的理解。本文是知乎用户mileistone的课程总结。
今天浏览了一下谷歌最近推出的 “机器学习速成课程”,虽然说这门课程是为没有任何机器学习经验的初学者设计的,但是整个浏览下来之后,收获还是不小,既能通过 “检查你的直觉” 栏目里的题目考核一下自己的直觉,也能在课程中找到自己平时觉得很重要但是一般机器学习资料里面没提及的点,以此验证自己的理解。
其中于我觉得作为机器学习 / 深度学习从业者而言很重要但是容易忽视的点整理如下:
以下是该课程 “检查你的直觉” 栏目的一个问题。
链接见 https://developers.google.com/machine-learning/crash-course/validation/check-your-intuition
在机器学习领域,一般会将数据集分为训练集、验证集和测试集,训练集用来训练模型,学习得到模型的权重,验证集用来挑选模型,测试集用来测试验证集挑选出来的模型。但是在深度学习领域,很多人会把验证集省略掉,只有训练集和测试集,测试集既用来挑选模型也用来测试模型。
这一点我觉得原因在于,深度学习领域从业者分为两类,一类以前是做传统机器学习的,对训练集、验证集和测试集门清,所以写论文的时候认为这是常识,就没用多少笔墨;另一类是一上来就学深度学习,对传统机器学习不甚了解的人,他们对训练集、验证集和测试集各自用途了解不深,而前一类人写论文的时候,又一笔带过,这使得一上来就学深度学习的人中不少人,把测试集当验证集和测试集用。
如果用测试集来挑选超参和测试,最后你所得到的模型很可能会过拟合到你的测试集上,超参不仅仅包括训练轮数、learning rate 的策略、momentum、weight decay 等等,还包括你所设计的网络,诸如有多少层、每一层多少个 kernel、每一层 kernel 的 size 等等。
在神经网络简介这门课的最后,有一张警告图。
警告:神经网络不一定始终比特征组合好,但它确实可以提供适用于很多情形的灵活替代方案。
我觉得这张警告图非常好,现在神经网络、深度学习太火了,使得很多初入门的人认为神经网络是最好的模型,做啥任务脑子里都只有神经网络。其实这是不对的,神经网络只不过是一种提供非线性能力的选择之一,它不一定是最好的,某些情况下,手工设计一些特征组合,达到的效果会比神经网络还好,同时对计算资源的消耗却会大大减小。
链接见 https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/anatomy
这门课里花了专门一张来讲特征和数据处理,我觉得这个也非常好,很多初学者,觉得机器学习和深度学习是万能的,只有把数据灌进去,就能得到好的结果,其实不然。这一章应该能让初学者意识到特征和数据处理的重要性。
链接见 https://developers.google.com/machine-learning/crash-course/representation/feature-engineering
https://developers.google.com/machine-learning/crash-course/representation/qualities-of-good-features
https://developers.google.com/machine-learning/crash-course/representation/cleaning-data
这一点我本来不觉得是点,但是前段时间跟一个从业者聊天,发现他在业务中使用到二分类进行推理的时候,阈值全部设置为 0.5,让我惊诧不已。他认为 “既然是二分类,那么阈值不就是 1/2=0.5 吗?”,好像直觉上还真的很容易认为是这样。今天看到谷歌这门课程里专门提到这一点,我觉得开发这个课程的谷歌工程师应该也遇到了不少我遇到的状况。
链接见 https://developers.google.com/machine-learning/crash-course/classification/thresholding
这门课里有几道关于准确率、精确率、召回率、ROC、AUC 的问题,可以检查一下自己对这些指标的理解是否正确。
链接见 https://developers.google.com/machine-learning/crash-course/classification/check-your-understanding-accuracy-precision-recall
https://developers.google.com/machine-learning/crash-course/classification/check-your-understanding-roc-and-auc
Last But Not Least
这门课程里有不少 “Playground 练习”,可以让你更直观地理解机器学习中的一些问题。
(本文经授权转载自知乎,作者:mileistone)