优化算法与特征映射在机器学习中的应用

1、在本练习中,你将使用梯度下降法来最小化函数g(w) = -cos(2πw^Tw) + w^Tw。使用包装函数two_d_grad_wrapper_hw来执行梯度下降,在子函数[in,out] = gradient_descent(alpha,w0)中填入梯度的形式。这个子函数执行梯度下降,除了梯度部分外已完成。这里alpha是固定步长,w0是初始点(两者都在包装函数中提供),变量in包含每个梯度步骤,即in = [wk = wk−1 - α∇g(wk−1)](k从0到K),相应的out是在这些步骤上评估的目标函数向量,即out = [g(wk)](k从0到K),其中K是所采取的总步数。

按照要求,使用包装函数 two_d_grad_wrapper_hw 进行梯度下降,在子函数 gradient_descent 中补充梯度形式,通过给定的固定步长 alpha 和初始点 w0 ,计算每个梯度步骤和对应目标函数值。

2、当使用任何数值方法来最小化高维输入函数 g(w) 时,存储每次迭代以及每次迭代对应的目标函数值 g(wk) 有助于确保算法正确收敛。在这个例子中,你将使用梯度下降法来最小化一个简单的函数,并绘制每一步的目标函数值,比较不同步长对算法收敛速度的影响。假设 g(w) = w^Tw,其中 w 是一个 N = 10 维的输入向量。这只是一维简单抛物线的推广。g 是凸函数,在 w = 0_N×1 处有唯一的全局最小值。编写梯度下降代码,设置最大迭代停止准则为 100 次迭代(无其他停止条件)。使用初始点 w0 = 10 · 1_N×1,分别以步长 α1 = 0.001、α2 = 0.1 和 α3 = 1.001 运行梯度下降法,并记录每次运行中每次迭代的目标函数值 g(wk)。将这些值绘制在同一张图上。

需编写代码实现梯度下降法,以最小化函数 $ g(w) = w^T w $。设置最大迭代次数为 100 次,初始点 $ w_0 = 10 \cdot 1_{N \times 1} $,分别使用步长 $ \alpha_1 = 0.001 $、$ \alpha_2 = 0.1 $ 和 $ \alpha_3 = 1.001 $ 运行梯度下降法,记录每次迭代的目标函数值 $ g(w_k) $,最后将这些值绘制在同一张图上。

3、运行牛顿法演示文件 convex_newt_demo,该文件展示了将牛顿法应用于最小化一个简单一维函数。查看牛顿法子函数,看看它是如何对应特定算法(假设为算法 2.2)的。此外,运行 non - convex_newt_demo,它展示了针对非凸函数的同类演示。注意,如果从函数的凹部分开始,牛顿法可能会收敛到函数的局部最大值。

实验要求

  • 按要求运行 convex_newt_demo 演示文件,观察牛顿法对简单一维函数的最小化过程,查看子函数与特定算法(假设为算法 2.2)的对应关系;
  • 再运行 non-convex_newt_demo 演示文件,注意从函数凹部分开始时牛顿法会收敛到局部最大值。

4、在本练习中,你将探索特定情况,使非线性方程组能够转化为关于参数b和w的线性方程组。为此,请回忆:若存在另一个函数f⁻¹,使得f⁻¹(f(t)) = t,则函数f在t处有反函数。例如,指数函数f(t) = eᵗ对每个t都有反函数f⁻¹(t) = log(t),因为我们总有f⁻¹(f(t)) = log(eᵗ) = t。a) 证明逻辑 sigmoid 函数在 0 < t < 1 时具有形式为σ⁻¹(t) = log(t/(1 - t))的反函数,并验证对于所有满足该条件的t,确实有σ⁻¹(σ(t)) = t。b) 假设对于给定数据集[xp, yp]ᵀ(p从1到P),所有的yp都满足0 < yp < 1。对非线性方程组应用 sigmoid 反函数,推导出等价的线性方程组b + xpw ≈ log(yp/(1 - yp)),p = 1, …, P。由于该线性方程组现在关于b和w都是线性的,我们可以通过检查最优性的一阶条件来求解这些参数。c) 使用数据集bacteria_data.csv,基于b部分的线性方程组求解最小二乘成本函数,并绘制数据以及逻辑 sigmoid 拟合曲线。

a) 需证明逻辑 sigmoid 函数在 $0 < t < 1$ 有反函数
$$
\sigma^{-1}(t) = \log\left(\frac{t}{1 - t}\right)
$$
并验证
$$
\sigma^{-1}(\sigma(t)) = t
$$

b) 利用给定数据集和 sigmoid 反函数推导线性方程组
$$
b + x_pw \approx \log\left(\frac{y_p}{1 - y_p}\right)
$$

c) 使用数据集 bacteria_data.csv ,基于 b 部分线性方程组求解最小二乘成本函数,绘制数据和逻辑 si

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值