房价预测问题:已知m组数据的房价与其对应的面积、所在楼层、地段、交通等特征的数据。假设这m个数据中,第i个房子的房价为 y ( i ) y^{(i)} y(i),楼层、地段、交通等的特征为 ( x 1 , x 1 , . . . , x n ) (x_1,x_1,...,x_n ) (x1,x1,...,xn)。我们需要做的是从过去的这m条数据中,学到一个模型,用于已知这些特征,求新的房子的房价。
1.假设函数(hypothesis)
首先,我们可以根据m条数据的分布特点,假设预测房价的模型函数为: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + … + θ n x n h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ(x)=θ0+θ1x1+θ2x2+…+θnxn
2.损失函数
模型输出值与真实值之间的均方或者绝对值之差或者其他形式的差。此处使用最常用的均方误差(MSELoss),即: J ( θ 0 , θ 1 … θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1} \ldots \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1…θn)=2m1i=1∑m(hθ(x(i))−y(i))2我们的目的是求出 ( θ 1 , θ 1 , . . . , θ n ) (\theta_1,\theta_1,...,\theta_n ) (θ1,θ1,...,θn),使得该损失 J J J最小,即在m条训练数据中,模型预测的值最接近真实值。
3.梯度下降
梯度下降用于计算损失函数取得最小值时 θ i \theta_i θi的值,梯度下降法更新参数 θ i \theta_i θi的公式为:
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 , … , θ n ) \theta_{\mathrm{j}}:=\theta_{\mathrm{j}}-\alpha \frac{\partial}{\partial \theta_{j}} \mathrm{J}\left(\theta_{0}, \theta_{1}, \ldots, \theta_{\mathrm{n}}\right) θj:=θj−α∂θj∂J(θ0,θ1,…,θn)即初始值-学习率*损失函数对该变量的偏导数,a是学习率(learning rate),它决定了我们沿着能让损失函数下降程度最大的方向向下迈出的步子有多大。
θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) θ 1 : = θ 1 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 1 ( i ) θ 2 : = θ 2 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 2 ( i ) \begin{array}{l}{\theta_{0}:=\theta_{0}-a \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y