1.什么是机器学习
在将深度学习之前,需要先了解机器学习的基础概念和实现方法,机器学习(Machine Learning,ML),顾名思义就是机器的学习能力,这里的学习,其实是学习构造一个函数,这个函数接受一定的参数,返回我们想要的结果,不同的是,这个函数是很复杂的,通过人类很难计算出来,所以我们借助计算机的力量。
2.机器学习的不同类别
常见的机器学习任务主要有三种:一是回归(regression),函数的返回值是一个区间(区间也有可能是无穷大),比如求气温,考试成绩,股票的涨跌情况;二是分类(classificatoin),函数的返回值是离散的选项,比如让计算机做英语阅读理解,选项就是ABCD,这些我们准备好的选项称为类别(class),机器要找的函数就是从中选出一个正确的选项输出;三是结构化学习(structure learning),函数返回的是一个结构,即不是一个单纯的数字或者选项,我们可以让函数返回一个图像,一段声音,或是生成一段视频。
3.模型、权重和偏置
我们将函数简化成一个一元函数便于理解:
这个带有未知参数的函数就叫模型(model),x称为特征(feature),是函数中的已知参数,系数w称为权重(weight),b称为偏置(bias)
4.损失的定义及参数计算
损失(loss)也是一个函数,他接受的参数是模型中的参数,返回的是模型计算结果和实际的偏差损失,机器学习得到的函数越精确,就意味着损失应该尽量小。
如何计算精确的w和b使损失L的值最小?常用的优化方法是梯度下降(gradient descent)。
先假定b已知要求w,带入不同的w可以得到不同的损失L,从而得到一个w-L的函数,我们对这个函数求导,求导的结果代表着该函数在某点的切线斜率,若是在该店函数切线斜率为负,就将w增大一点,反之减小。增大的量取决于两个因素,一是该点的斜率大小,斜率越大,w增大的权重也应越大,二是学习率(learning rate),学习率是自己设定的参数,学习率越大,每次参数更新的量也就越大,这种在机器学习中人为设定的参数叫超参数(jyperparameter)。
我们反复更新w的大小,知道切线斜率为0,就可以找到一个函数的局部最小值(local minima),这个点的w不一定是最优解,因为函数中可以存在多个局部最小值,所有局部最小值中最小的那个才是整个L函数的最小值,称为全局最小值(global minima)
现在扩展到两个参数,我们对两个参数分别求偏导,计算完后更行w和b,把w0减去学习率乘上微分的结果得到w1,把b0减去学习率乘上微分的结果得到b1。这些计算微分的过程在深度学习框架中都是程序自动计算的,我们先随便选一个w和b的初值,反复执行这个步骤不断更新w和b,就能得到w和b的最优解。
5.个人感受
学习时,我对着下载的pdf看了很长时间,对函数模型进行了较为认真的分析,深度学习很难,但是不是不能克服的,希望以后还能坚持