学习链接如下:
深度学习入门:Datawhale (linklearner.com)
这块建议结合b站吴恩达的机器学习视频学习,讲的很清楚
(超爽中英!) 2024公认最好的【吴恩达机器学习】教程!附课件代码 Machine Learning Specialization_哔哩哔哩_bilibili
机器学习和深度学习概念与区别:
一文看懂深度学习(白话解释+8个优缺点+4个典型算法)_深度学习和传统机器学习相比具有哪些优势1500-优快云博客
机器学习,即机器具有学习的能力。具体来讲,就是让机器寻找到一个函数,使得给他一个输入,能产生合理的输出。比如语音转文字功能,输入就是一段音频,输出是对应的文字。如果人类自己编写从语音到文字的函数比较困难,如果能通过机器的强大计算能力,使其自己找到这个函数,就能实现很多事情。包括图像识别、图像分割、Alfago下棋等。
深度学习是机器学习的一个分支,只不过深度学习是在传统神经网络上的升级。特点是需要大量算力。可以见下面链接
https://blog.youkuaiyun.com/weixin_43612023/article/details/97235212
机器学习案例:
一个人想通过视频平台赚钱,需要关注该平台的视频有没有流量,这样能知道自己获利空间多大。假设他在后台可以看到每天的点赞人数、订阅人数、观看次数,根据一个频道过往的信息可以预测明天的观看次数。对这个案例,输入就是后台的数据,输出是第二天这个频道的观看次数。
机器学习三步走:
这个案例可以拆解成三步。
- 写出带有未知参数的函数f,如
y是预测结果,x1是后台信息(是n*1的向量,比如[昨天观看量;昨天订阅人数;昨天点赞人数]),简单起见,假设x1就是昨天的观看量。w与b都是未知的参数,w称为权重(weight),b称为(bias),x1称为特征(feature),输入x1对应的真实值称为标签(label)。 - 定义损失(Loss),损失也是个函数,他的输入是模型里面的参数w和b,输出是参数对应的损失。比如昨天播放量是500,w=1,b=0时,预测的今天播放量应该是
假设今天实际播放量是600,那么二者差距就是600-500=100。单个样本的Loss可以用多种方法来定义,比如平均绝对误差(Mean Absolute Error, MAE):,以及均方误差(Mean Square Error, MSE):
,或者交叉熵(cross entropy)等。对于给定的N个样本,其损失函数L(w,b)可以定义为N个样本各自的损失求和后取平均:
对于不同的w与b,可以得到不同的L值,将损失函数画图,就可以看出损失函数较小的点在哪里,画出来的等高线称为误差表面(error surface)。损失函数越小,说明模型的预测越准确。 - 最优化损失函数,就是找到w与b,使得L最小。梯度下降(gradient descent)是经常用的优化方法。具体来说,就是先计算出L在给定的
处的梯度,然后对w,b做更新:
,
其中是学习率(learning rate)。这种不是机器学习能得到的,需要人为确定的参数叫做超参数(hyperparameter)。这样反复更新w和b,可以逐步将L减小,这里涉及到微积分的知识,不懂的可以看b站吴恩达的视频。
什么时候停止参数更新是一个问题,可以自定义最大迭代步数,超过这个步数就停止更新;也可以定义当梯度接近零,比如其绝对值小于一个很小的值1e-4时,停止更新。此时L可能处在鞍点、局部最小值(local minima)或者全局最小值(global minima)。在合适的参数设置下,梯度下降可以快速收敛,但不一定能跳出局部最小值到达全局最小值:
多参数时,与单参数的更新类似,只不过要实现对所有参数的同时更新。梯度学习的优化过程可能如下所示: