人工智能笔记之机器学习原理

机器学习原理

学习完数学理论就差不多该开始学习机器学习的原理了,现在流行的深度学习和强化学习,基本都是基于机器学习的原理,机器学习是基础,所以需要先了解机器学习是什么,怎么实现的。

1. 机器学习的本质

机器学习的本质是找到一个功能函数,这个函数会根据我们的输入,返回一个结果。所谓函数就是输入了一个或几个变量(x),通过数学转换之后输出一个数据(y),所以只要确定了数学转换的算法,以及算法中所需要的参数,就能确定这个函数。

2. 机器学习任务及具体步骤

机器学习的核心任务有两个,首先是找到合适的算法,其次是计算该算法所需要的参数。一般我们举一个最简单的函数,如 y = w x + b y=wx+b y=wx+b,其中w是变量的系数,代表权重,参数b是常量,代表偏置量。通过给出大量的x值和y值,算出w和b,那么就可以得出具体的功能函数,我们也就找到规律了,有了具体的函数,根据输入x的值,我们就知道输出的y值了,这就是机器学习,具体的步骤如下:

Created with Raphaël 2.2.0 1. 算法选择 2. 初始化参数 3. 计算误差 4. 误差够小? 6. 完毕 5. 调整参数 yes no

根据x,y值的输入,推算规律

xy
1233
4534
323
5643
  1. 算法选择:选用最简单的线性函数 y = w x + b y=wx+b y=wx+b
  2. 初始化参数:就是给w,b一个初始的值,这个初始的值是个随机数
  3. 计算误差:现在已经知道了w和b,那么就可以把样本数据中的x带入函数中求y值,为了避免混淆把这次算出的y值记作 y h a t y^{hat} yhat,然后通过计算误差的函数计算误差,计算误差函数为
    J ( w , b ) = ∑ i = I n [ ( w x + b ) − y ] 2 J(w,b)=\sum^n_{i=I}[(wx+b)-y]^2 J(w,b)=i=In[(wx+b)y]2
  4. 判断学习是否完成:每次计算出来的误差相互对比,总误差不超过0.0001,就认为学习已经完成。
  5. 调整参数:学习的目的是为了把误差降到最低,根据数学知识我们知道,沿着误差函数的导数方向调整参数,误差函数就可以变小了。即,用现有的误差公式求对参数w的偏导数,以及对参数b的偏导数,就能得到 Δ w , Δ b \Delta w,\Delta b ΔwΔb,再用原来的参数w,b减去 Δ w , Δ b \Delta w,\Delta b ΔwΔb,就实现了对参数的调整,每次只调整1%,这个1%就是学习率 η \eta η
    具体过程如下:
    w = w − η Δ w b = b − η Δ b w=w-\eta \Delta w \\ b=b-\eta \Delta b w=wηΔwb=bηΔb
    利用符合函数的求导公式:
    f ( g ( x ) ) ′ = f ′ ( x ) g ′ ( x ) f(g(x))^\prime=f^\prime(x)g^\prime(x) f(g(x))=f(x)g(x),令 g ( x ) = w x + ( b − y ) g(x)=wx+(b-y) g(x)=wx+(by),
    f ( g ( x ) ) = ∑ i = I n [ w x + ( b − y ) ] 2 f(g(x))=\sum^n_{i=I}[wx+(b-y)]^2 f(g(x))=i=In[wx+(by)]2,上述误差函数的偏导数分别为
    Δ w = ∂ ∂ w J ( w , b ) = ∑ i = 1 n 2 ( w x + b − y ) x Δ b = ∂ ∂ b J ( w , b ) = ∑ i = 1 n 2 ( w x + b − y ) \Delta w= \frac{∂}{∂w}J(w,b)=\sum^n_{i=1}2(wx+b-y)x \\ \Delta b= \frac{∂}{∂b}J(w,b)=\sum^n_{i=1}2(wx+b-y) Δw=wJ(w,b)=i=1n2(wx+by)xΔb=bJ(w,b)=i=1n2(wx+by)
  6. 反复迭代,根据步骤3计算的误差,再次进行步骤4和步骤5的迭代循环,直到误差变得足够小,此时的w和b值就是机器学习要找的参数。以后就可以用这个具体的功能函数根据任意一个新的x值,计算出对应的y值了。
3. 机器学习的复杂化

现实中基本不可能只存在一个变量,影响事务发展的因素也不可能只有一个,所以将线程方程复杂化之后,我们得出一个公式:
h ( θ ) = θ 0 x 0 + θ 1 x 1 + ⋯ + θ n x n = ∑ i = 1 n θ i x i h(\theta)=\theta_0x_0+\theta_1x_1+\cdots+\theta_nx_n=\sum^n_{i=1}\theta_ix_i h(θ)=θ0x0+θ1x1++θnxn=i=1nθixi
其中 θ \theta θ代表权重,n是变量的个数。之后我们就可以得出损失函数,也叫代价函数,可以用公式表示为:
J ( θ ) = ∑ i = 1 n ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\sum^n_{i=1}(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=i=1n(hθ(x(i))y(i))2
其中m表示样本数据的个数,机器学习的目标就是让损失函数足够小,而办法就是不断的调整 θ \theta θ,调整的方法就是对 J ( θ ) J(\theta) J(θ)求偏导数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值