<基础原理进阶>机器学习算法python实现【0】回归简谈&三种梯度下降算法

本文主要探讨机器学习中的回归算法,重点在于理解梯度下降的基础和Python实现。作者首先介绍了回归的基本概念,然后通过数学推导解释了梯度下降的原理,并分别实现了批量梯度下降和随机梯度下降算法。文章强调了亲自实现这些基础算法的重要性,以加深对机器学习的理解,并提供了代码示例和可能遇到的问题。
摘要由CSDN通过智能技术生成

#####################

适合对算法的数学描述有一定理解的童鞋看~~

对TensorFlow中直接封装好的算法的具体python实现,补充另一个分类中的知识

参考书籍: 《机器学习实战》等

有些代码我自己也有问题,思考中已经解答的问题和一些坑我会注意说明的。也欢迎大家提出问题,相互交流进步

学习之后记录博客,对自己起到supervised learning的作用 :)

大家一起学习,进步,享受深度学习的乐趣吧!

需要引用的数据集,以及完整代码,放在github上,与这个的标题一一对应的~

https://github.com/Skyorca/csdn-

#####################

1. 万物伊始

作为机器学习算法的开篇之谈,让我们简单谈一下相关的背景知识。注意,我用的词语是“机器学习”,而不是“深度学习”!也就意味着我更多地会去实现传统的内容,而涉及到搭建各种神经网络慢慢地会用TF去做。


这张图大概告诉了我们,机器学习是要做什么。而目前我的进度还停留在回归上。所谓的回归,就是找出一条数据的最佳拟合曲线。找到曲线之后,我们可以做预测,也可以做分类。比如经典的sigmoid函数,我们可以以0.5为准,上下分成两类来实现最简单的分类器。回归又分为线性的和非线性的。当然,线性回归基本只停留在课本的前几页上,因为它的描述能力太弱了。比如加一个二次项,它的描述力就会极大增强。这里我们选择对线性模型施加非线性激励的方法。

说到非线性激励,它就有很多模型可以选择了。最常见的,除了sigmoid外,还有ReLU,softmax等等,不过那些都是后话。这里还是谈到sigmoid函数。它有两个好处:

1.输出值都在【0,1】区间,很实用

2.求导简单,s'=s(1-s)这样。稍后就会看到它的优势。


2.过渡

那么就有一个问题:为什么梯度下降算法被封装在了TF中呢?大概就是:对于一个网络,训练时有前传和后传两个过程。向后传递(反向传播)时,就需要用到梯度下降去最小化损失函数,完成一个训练过程。之后用得到的新参数继续投入轰轰烈烈的“前传--后传”训练中来。所以我们有必要亲自实现一遍如此基本重要的算法,而不是直接用它封装的东西就草草了事。大家在我的TF分类中也会看到它在BP神经网络中的应用。


3.简单复习梯度下降的数学基础

<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值