命令式编程和声明式编程的优缺点
命令式编程和声明式编程的区别
梯度下降法
需要设定合适的学习率
1. 如何调整神经网络使得目标函数最小呢?在这里,我们不能像解方程一样神经网络参数解出来,找到最优参数,为什么呢?第一个因为现在的参数数目众多,求解起来会非常的耗时;第二点是因为约束条件是数据,就是说我们要在数据集上调整参数使得目标函数最小,但是对于很多的机器学习应用来说,它的数据是变化的,比如说很多应用都采集不同的数据,每天都有增加,今天数据集上的最优参数可能到明天就不是最优了,所以导致我们不能用直接求解的方式。那么如何求呢?
下山算法:找到方向,走一步。
神经网络中有类似的算法,叫做梯度下降算法。
在这个过程中,影响最大的参数是α,这是一个预先设定好的值,当然可以在训练过程中不断去调整,但这不是学习出来的,而是人为设置的。它的大小完完全全影响着整个网络的学习程度:
2 Tensorflow介绍:
Google Brain的第二代机器学习框架
开源社区活跃
可扩展性好,在分布式下支持的特别好,可以很轻松地用tensorflow扩展到多台机器上,一机一卡扩展到一机多卡或者多机多卡这样的情况
API健全,对用户友好
3. 计算图模型:
为什么要讲计算图模型呢?因为它和求解神经网络是有关系的的。神经网络的结构是定义好的,但是它的输入x是用户自己产生的,所以我们在定义神经网络的时候并不知道数据是什么,我们要在定义好神经网络之后才可以把数据输入进来,才可以求解,去调整神经网络参数,使神经网络可以符合这个数据,所以这是tensorflow使用计算图模型的一个基础。
梯度下降法
学习率相当于步长
命令式编程、声明式编程
斯塔为参数
instructional programming vs declarational programming
declaration programming
learning rate curves
Tensorflow基础
命令式编程 声明式编程
神经网络训练
下山最快算法 类比神经网络中的梯度下降算法
命令式编程VS声明式编程
计算图模型(声明式编程)
α代表步长