玩转机器学习目标函数

本文探讨了机器学习中目标函数,即损失函数的编程实现,特别是如何在Python中表达和计算目标函数及其梯度。文章通过一个具体的例子解释了目标函数的表达方式,并对δ(i,j)的逻辑进行了分析。" 90669114,8261360,C++解决USACO07JAN的Balanced Lineup:RMQ应用,"['RMQ', '线段树', '算法', '数据结构', '编程竞赛']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习中的目标函数(target function),又称损失函数(loss/cost function),参数的求解是从目标函数的优化开始。But,如何在程序中编写目标函数,小结一下:

1. 假设存在一个目标函数:


如何将其写在程序中,python形式如下:

# 定义目标函数
def rosen(x):
    ''' The Rosenbrock function '''
    return sum(100.0 * (x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)

x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
res = minimize(rosen, x0, method = 'nelder-mead',\    
               options = {'xtol': 1e-8, 'disp': True})		# 目标函数rosen, 初始值x0, 优化方法nelder-mead

print res.x     # 得到的是最小值对应的解
如果使用BFGS算法优化该目标函数时,需要求目标函数对应的梯度,梯度计算如下:


上式推导中的第二步,没看明白,是不是δ(i,j)的i==j时,该值为1; i != j时,该值为0? 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值