[云炬python3玩转机器学习]6-2模拟梯度下降法

模拟梯度下降法

In [1]:

import numpy as np
import matplotlib.pyplot as plt
import datetime;print ('Run by CYJ,',datetime.datetime.now())

In [2]:

plot_x = np.linspace(-1., 6., 141)
plot_x

Out[2]:

array([-1.  , -0.95, -0.9 , -0.85, -0.8 , -0.75, -0.7 , -0.65, -0.6 ,-0.55, -0.5 , -0.45, -0.4 , -0.35, -0.3 , -0.25, -0.2 , -0.15,-0.1 , -0.05,  0.  ,  0.05,  0.1 ,  0.15,  0.2 ,  0.25,  0.3 ,0.35,  0.4 ,  0.45,  0.5 ,  0.55,  0.6 ,  0.65,  0.7 ,  0.75,0.8 ,  0.85,  0.9 ,  0.95,  1.  ,  1.05,  1.1 ,  1.15,  1.2 ,1.25,  1.3 ,  1.35,  1.4 ,  1.45,  1.5 ,  1.55,  1.6 ,  1.65,1.7 ,  1.75,  1.8 ,  1.85,  1.9 ,  1.95,  2.  ,  2.05,  2.1 ,2.15,  2.2 ,  2.25,  2.3 ,  2.35,  2.4 ,  2.45,  2.5 ,  2.55,2.6 ,  2.65,  2.7 ,  2.75,  2.8 ,  2.85,  2.9 ,  2.95,  3.  ,3.05,  3.1 ,  3.15,  3.2 ,  3.25,  3.3 ,  3.35,  3.4 ,  3.45,3.5 ,  3.55,  3.6 ,  3.65,  3.7 ,  3.75,  3.8 ,  3.85,  3.9 ,3.95,  4.  ,  4.05,  4.1 ,  4.15,  4.2 ,  4.25,  4.3 ,  4.35,4.4 ,  4.45,  4.5 ,  4.55,  4.6 ,  4.65,  4.7 ,  4.75,  4.8 ,4.85,  4.9 ,  4.95,  5.  ,  5.05,  5.1 ,  5.15,  5.2 ,  5.25,5.3 ,  5.35,  5.4 ,  5.45,  5.5 ,  5.55,  5.6 ,  5.65,  5.7 ,5.75,  5.8 ,  5.85,  5.9 ,  5.95,  6.  ])

In [3]:

plot_y = (plot_x-2.5)**2 - 1.

In [4]:

plt.plot(plot_x, plot_y)
plt.show()

In [5]:

epsilon = 1e-8
eta = 0.1

In [6]:

def J(theta):return (theta-2.5)**2 - 1.def dJ(theta):return 2*(theta-2.5)theta = 0.0
while True:gradient = dJ(theta)last_theta = thetatheta = theta - eta * gradientif(abs(J(theta) - J(last_theta)) < epsilon):breakprint(theta)
print(J(theta))
2.499891109642585
-0.99999998814289

In [7]:

theta = 0.0
theta_history = [theta]
while True:gradient = dJ(theta)last_theta = thetatheta = theta - eta * gradienttheta_history.append(theta)if(abs(J(theta) - J(last_theta)) < epsilon):breakplt.plot(plot_x, J(plot_x))
plt.plot(np.array(theta_history), J(np.array(theta_history)), color="r", marker='+')
plt.show()

In [8]:

len(theta_history)

Out[8]:

46

In [9]:

theta_history = []def gradient_descent(initial_theta, eta, epsilon=1e-8):theta = initial_thetatheta_history.append(initial_theta)while True:gradient = dJ(theta)last_theta = thetatheta = theta - eta * gradienttheta_history.append(theta)if(abs(J(theta) - J(last_theta)) < epsilon):breakdef plot_theta_history():plt.plot(plot_x, J(plot_x))plt.plot(np.array(theta_history), J(np.array(theta_history)), color="r", marker='+')plt.show()

In [10]:

eta = 0.01
theta_history = []
gradient_descent(0, eta)
plot_theta_history()

In [11]:

len(theta_history)

Out[11]:

424

In [12]:

eta = 0.001
theta_history = []
gradient_descent(0, eta)
plot_theta_history()

In [13]:

len(theta_history)

Out[13]:

3682

In [14]:

eta = 0.8
theta_history = []
gradient_descent(0, eta)
plot_theta_history()

In [16]:

eta = 1.1
theta_history = []
gradient_descent(0, eta)
---------------------------------------------------------------------------
OverflowError                             Traceback (most recent call last)
<ipython-input-16-89c87a003181> in <module>1 eta = 1.12 theta_history = []
----> 3 gradient_descent(0, eta)<ipython-input-9-46124331ca03> in gradient_descent(initial_theta, eta, epsilon)11         theta_history.append(theta)12 
---> 13         if(abs(J(theta) - J(last_theta)) < epsilon):14             break15 <ipython-input-6-09073b555d68> in J(theta)1 def J(theta):
----> 2     return (theta-2.5)**2 - 1.3 4 def dJ(theta):5     return 2*(theta-2.5)OverflowError: (34, 'Result too large')

In [17]:

def J(theta):try:return (theta-2.5)**2 - 1.except:return float('inf')

In [18]:

def gradient_descent(initial_theta, eta, n_iters = 1e4, epsilon=1e-8):theta = initial_thetai_iter = 0theta_history.append(initial_theta)while i_iter < n_iters:gradient = dJ(theta)last_theta = thetatheta = theta - eta * gradienttheta_history.append(theta)if(abs(J(theta) - J(last_theta)) < epsilon):breaki_iter += 1return

In [19]:

eta = 1.1
theta_history = []
gradient_descent(0, eta)

In [20]:

len(theta_history)

Out[20]:

10001

In [21]:

eta = 1.1
theta_history = []
gradient_descent(0, eta, n_iters=10)
plot_theta_history()

In [ ]:

 

In [ ]:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27743.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OneFlow源码解析:静态图与运行时

作者&#xff5c;郑建华 更新&#xff5c;许啸宇、张文骁、成诚 OneFlow静态图的训练效率远高于动态图&#xff08;eager模式&#xff09;。本文试图通过一个简单例子&#xff0c;结合v0.8.0版本的代码&#xff0c;解读一下静态图和运行时的实现机制。 在开始之前&#xff0c;建…

infer源码阅读之yolo.cu

目录 yolo.cu注意事项一、2023/3/30更新前言1.宏定义2.Norm3.后处理3.1 affine_project3.2 decode3.2.1 decode_common3.2.2 decode_v8 3.3 nms3.4 invoker 4.预处理5.decode_mask6.AffineMatrix7.InferImpl7.1 adjust_memory7.2 preprocess7.3 load7.4 forwards 8.其它9.拓展之…

【爬虫实例】从B站和某论文网站分析python爬虫的一般编写思路———To someone

问题背景 好久没写爬虫了&#xff0c;前两天友人来问我python能不能爬论文&#xff0c;能不能告诉她爬虫的基本运行原理是什么&#xff0c;跑起来是什么样子。 我一看&#xff0c;论文爬取——爬虫最实用的场景之一&#xff0c;这不拿捏&#xff1f; 于是便尝试现场演示一番。…

【Metaverse系列一】元宇宙的奥秘

你有没有想过逃离闷热的会议室&#xff0c;瞬间移动到马尔代夫的沙滩上开会&#xff1f;开完会&#xff0c;纵身跳入大海和美人鱼捉迷藏。然后一个鲤鱼打挺直冲云霄&#xff0c;进入天宫一号开展科学研究&#xff0c;发现微重力环境下韭菜的长势喜人&#xff0c;而且在特定光照…

科大讯飞版ChatGPT测评:很好很强大

大家好&#xff0c;我是黄海广。 今天我体验到了科大讯飞版本的ChatGPT&#xff0c;这个产品凭借其强大的功能和出色的性能&#xff0c;超出了我对国产大模型的预期。 一、产品简介 这个模型全名叫讯飞星火认知大模型&#xff0c;官方是这么解释这个产品的&#xff1a; “科大讯…

七大语言模型PK,ChatGPT内容基线测评稳居第一

随着ChatGPT的爆火与流行&#xff0c;大型语言模型&#xff08;LLM&#xff09;与生成式人工智能&#xff08;AIGC&#xff09;不断跃入大众视野&#xff0c;随之也带来了许多内容风险隐患。 近日&#xff0c;知道创宇内容安全专家对互联网上流行的7款大型语言模型进行了全面和…

ChatGPT风靡全球,我们应该为未来感到担心吗?

近期&#xff0c;关于ChatGPT的话题再次引爆全网&#xff0c;不少用户加入到“玩疯了”的阵营中……有赞叹不已的、有表示惊奇的、有展示BUG的&#xff0c;但总体来说&#xff0c;ChatGPT的整体社交评价还是非常向好的。 微软CEO纳德拉就坦言&#xff0c;ChatGPT服务的风靡&…

库克考虑卸任苹果CEO,谁会是下一任接班人?

作者 | Carol 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 十年前&#xff0c;8 月 24 日那天&#xff0c;史蒂夫乔布斯宣布辞去苹果 CEO 一职&#xff0c;正式任命蒂姆库克成为苹果的新掌门人。如今&#xff0c;恰逢库克上任苹果 CEO 十周年。在今年4月份&…

历史上的今天:乔布斯辞去苹果CEO一职;Windows 95 发布

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2022 年 8 月 24 日&#xff0c;14 年前的今天&#xff0c;北京奥运会闭幕式举办&#xff0c;宣告圆满结束&#xff0c;为所有国人打上了一针强心剂。而在科技历史上&am…

最全盘点苹果高管团队 谁有可能成为下一代继任者?

编译&#xff5c;辰辰 出品&#xff5c;网易智能 随着苹果首席执行官蒂姆库克(Tim Cook)已经掌舵10年&#xff0c;他和高级副手们正将更多注意力放在培养公司新一代领导者上。 目前库克管理团队的成员都是在苹果工作20多年&#xff0c;已经赚到数千万美元、年龄在55岁至60岁左右…

行业报告 | AI+制造业赋能,机器视觉开启掘金新大陆(上)

原创 | 文 BFT机器人 01 核心要点 Al制造业赋能&#xff0c;META 发布 SAM 助力机器视觉迎来 GPT 时刻。 机器视觉技术使得工业设备能够“看到”它正在进行的操作并进行快速决策&#xff0c;完整机器视觉系统由硬件软件组成,分别进行成像和图像处理工作。 目前&#xff0c;以“…

2024奇点将至:人类尚未准备好迎接S2F大于100的巨硬资产

奇点将至&#xff01; “奇点”这个词儿本来是搞人工智能的那帮人从物理学里借用过来唬人的。大意是指所谓AGI通用人工智能降临的那一刻。计算机将在智能上全方位碾压人类。 最近ChatGPT的爆红让无数人产生了错觉&#xff0c;真的彷佛看到AGI近在咫尺。 但是&#xff0c;穿越过…

chatGPT人工智能对话系统H5写作论文毕业论文付费问答写代码分销

ChatGPT对话问答系统是一款功能神奇的人工智能应用&#xff0c;具有广泛的用途和应用领域。以下是一些主要功能&#xff1a; 编写代码&#xff1a;ChatGPT可以帮助用户编写和理解各种编程语言的代码。撰写文案、论文、小说&#xff1a;ChatGPT能够根据用户的需求&#xff0c;协…

万字长文爆肝 DNS 协议!

试想一个问题&#xff0c;我们人类可以有多少种识别自己的方式&#xff1f;可以通过身份证来识别&#xff0c;可以通过社保卡号来识别&#xff0c;也可以通过驾驶证来识别&#xff0c;尽管我们有多种识别方式&#xff0c;但在特定的环境下&#xff0c;某种识别方法可能比另一种…

万字长文详细搞懂 volatile 关键字

volatile 这个关键字大家都不陌生&#xff0c;这个关键字一般通常用于并发编程中&#xff0c;是 Java 虚拟机提供的轻量化同步机制&#xff0c;你可能知道 volatile 是干啥的&#xff0c;但是你未必能够清晰明了的知道 volatile 的实现机制&#xff0c;以及 volatile 解决了什么…

李开复们混战AI,谁最有戏?

作者 | 王敏 编辑 | 金玙璠 2023年以来&#xff0c;AI“狂飙”。 ChatGPT一经问世&#xff0c;就掀起了新一轮AI革命。过去的几个月里&#xff0c;AI领域重磅“炸弹”一个接着一个。从业者们常常一觉醒来&#xff0c;就会因为硅谷发布新的AI产品而不得不快速更新认知。 伴随着热…

独家 前美团联合创始人王慧文“正在收购”国产AI框架OneFlow,光年之外欲添新大将

以ChatGPT为代表的AI大模型是2023年的科技C位。 2023年3月27日&#xff0c;ChatGPT引发的“抓马连续剧”&#xff0c;又有新剧更新。 前情提要&#xff1a; 前美团联合创始人、高级副总裁王慧文发文宣布进入AI领域&#xff0c;称将打造中国的OpenAI。 新闻标题一&#xff1…

笑死!这个插件太绝了;AI开发者如何稳赚这一波;MidJourney完完完全手册;零经验开发儿时3D游戏 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『文心一言员工跳槽工资翻倍』猎头&#xff1a;百万年薪很正常 最近一段时间&#xff0c;百度文心大模型团队内的研发人员受到其他公司…

AI大爆发却找不到工作?因为学校里教的和它关系不大

Datawhale干货 最新&#xff1a;就业趋势&#xff0c;来源&#xff1a;新智元 【导读】猎聘大数据研究院重磅发布《AIGC就业趋势大数据报告2023》&#xff0c;招聘平均年薪已达40万&#xff0c;博士需求量同比增长超100%。 不用赘述&#xff0c;大家都知道&#xff0c;最近半年…

平替!0门槛克隆ChatGPT!30分钟训完,60亿参数性能堪比GPT-3.5

新智元报道 编辑&#xff1a;编辑部 【新智元导读】破解「CloseAI」&#xff0c;ChatGPT克隆羊问世&#xff01;0门槛实现「自研」&#xff0c;从此大语言模型不再只是少数大公司的「金手指」。 此前&#xff0c;OpenAI不Open的事件&#xff0c;已经引发了坊间的诸多争议。 光…