目录
深度学习的效果
在较小规模的数据集上传统机器学习算法跟深度学习算法效果差不多,但传统算法运行更快,深度学习更适合大量数据规模。
一、计算机视觉
1.图像在计算机中长什么样
一张图片被表示成三维数组的形式,每个像素的值从0-255
例如: 300 x 100 x 3(300行,100列总共3w个像素点,每个像素点有三种颜色通道RGB)
2.计算机视觉面临的挑战
- 视觉角度地不同
- 形状改变
- 部分被遮蔽
- 物体与背景混合在一起
二、神经网络基础
2.1 线性函数/得分函数
该函数可以算出每个类别的得分值。比如说在一个10分类问题中(猫狗车船…马),一个猫的样本进入这个函数中,这个函数就会算出各个分类的得分
其中b被称作偏置项
W权重参数中值越大,(比如2.1)代表所对应的像素点对结果越有促进作用,值为负数或越小就对分类结果起到抑制作用。
一开始的参数W矩阵的数值都是随机生成的,要不断地进行反向传播和迭代来更改W,那么如何判定哪种W参数矩阵是最好的呢?即设置为某种W参数后,分类结果是最好的呢?这就需要下面介绍的损失函数,来衡量W参数的好坏
2.2 损失函数
2.2.1 max()
公式中的s是得分score的意思,是由2.1的线性函数f算出来的
式子中的+1,相当于一种容忍程度,Δ, 是可以调的
还要除以N个样本(1/N)
还要加上一个正则化惩罚项
小结:衡量一个模型(参数W)的好坏,就需要引入一个损失函数,损失函数包含了数据的损失和正则化惩罚项。我们总是希望模型不要太复杂,过拟合的模型不好
2.2.2 均方误差
mean squared error
yk表示神经网络的输出,tk表示目标数据(label), k表示数据的维数
例如:数字识别
#例题:分类手写数字0,1,2,3,4,...9
y1 = [0.1,0.05,0.6,0.0,0.05,0.1,0.0,0.1,0.0,0.0] #模型1预测数字2的概率最高,为0.6
t = [0,0,1,0,0,0,0,0,0,0] # 真实值onehot表示,样本实际值是2
def mean_squared_error(y,t):
return 0.5 * np.sum((y-t)**2)
mean_squared_error(np.array(y1)