学习笔记TF011:多层神经网络

线性回归、对数几率回归模型,本质上是单个神经元。计算输入特征加权和。偏置视为每个样本输入特征为1权重,计算特征线性组合。激活(传递)函数 计算输出。线性回归,恒等式(值不变)。对数几率回归,sigmoid。输入->权重->求和->传递->输出。softmax分类含C个神经元,每个神经元对应一个输出类别。

XOR异或运算,无法通过线性模型解决。sigmoido类型神经元要求数据线性可分。2D数据存在直线,高维数据存在超平面,把不同类别样本分隔。

在神经网络输入和输出之间插入更多神经元,解决非线性可分问题。输入层->隐含层(hidden layer)->输出层->输出。隐含层使网络可以对输入数据提出更多问题。隐含层每个神经元对应一个问题,依据问题回答最终决定输出结果。隐含层在数据分布图允许神经网络绘制以一条以上分隔线。每条分隔线向输入数据划分提出问题,所有相等输出划分到单个区域。深度学习,添加更多隐含层,可采用不同类型连接,使用不同激活函数。

梯度下降法,找到函数极值点。学习,改进模型参数,大量训练,损失最小化。梯度下降法寻找损失函数极值点。梯度输出偏导数向量,每个分量对应函数对输入向量相应分量偏导。求偏导,当前变量外所有变量视为常数,用单变量求导法则。偏导数度量函数输出相对特定输入变量的变化率,当输入变量值变化,输出值的变化。损失函数输入变量指模型权值,不是实际数据集输入特征。相对于推断模型每个权值。
梯度输出向量表明每个位置损失函数增长最快方向,在函数每个位置向哪个方向移动函数值可增长。点表示权值当前值。梯度向右箭头表示为增加损失需向右移动,简头长度表示向右移动函数值增长量。反方向移动,损失函数值减少。直到梯度模为0,达到损失函数极小值点。
学习速率(learning rate)缩放梯度。梯度向量长度在损失函数单元中,缩放与权值相加。学习速率是超参数(hyperparameter),模型手工可配置设置,需指定正确值。太小,需要多轮迭代。太大,超调(overshooting),永远找不到极小值点。用tf.summary.scalar函数在TensorBoard查看损失函数值变化曲线。
局部极值点问题,通过权值随机初始化,增加靠近全局最优点附近开始下降机会。损失函数所有极值点接近等价。
tf.gradients方法,符号计算推导指定流图步骤梯度以张量输出。梯度下降法取决输入数据形状及问题特点。

误差反向传播算法,计算损失函数相对网络权值偏导,每层导数都是后一层导数与前一层导输出积。前馈,从输入开始,逐一计算隐含层输出,直到输出层。计算导数,从输出层逐一反向传播。复用所有已完成计算元素。

Sigmoid隐含层,softmax输出层以及带反向传播梯度下降,是最基础构件。

参考资料:
《面向机器智能的TensorFlow实践》

欢迎加我微信交流:qingxingfengzi
我的微信公众号:qingxingfengzigz
我老婆张幸清的微信公众号:qingqingfeifangz

时间: 2024-10-05 01:08:44

学习笔记TF011:多层神经网络的相关文章

深度学习笔记1(卷积神经网络)

深度学习笔记1(卷积神经网络) 在看完了UFLDL教程之后,决定趁热打铁,继续深度学习的学习,主要想讲点卷积神经网络,卷积神经网络是深度学习的模型之一,还有其它如AutoEncoding.Deep Belief Network.Restricted Boltzmann Machine和sparse coding等. 在UFLDL教程中提到了针对大型图像的处理,使用卷积和池化的概念.原因主要对于全连接网络,需要的参数就有很多.比如对于一副1000*1000的图像,hidden layer也为100

thinkphp学习笔记7—多层MVC

原文:thinkphp学习笔记7-多层MVC ThinkPHP支持多层设计. 1.模型层Model 使用多层目录结构和命名规范来设计多层的model,例如在项目设计中如果需要区分数据层,逻辑层,服务层等不同的模型层可以在模块目录下创建Model,Logic,Service目录,把对用户表的所有模型操作分成3层. 1.Model/UserModel用于定义数据相关的自动验证,自动完成和数据存取接口 2.Logic/UserLogical用于定义用户相关的业务逻辑 3.Service/UserSer

DeepLearning (六) 学习笔记整理:神经网络以及卷积神经网络

神经网络 神经网络模型 前向传播 反向传播 Neural Networds Tips and Tricks Gradient Check Regularization 激活函数 sigmoid 函数 Tanh Relu 稀疏编码 卷积神经网络 卷积 局部感知 权值共享 多通道卷积 卷积输出大小计算公式 池化pooling后的平移不变性 Dropout Learning rate AdaGrad python 实现 caffe 中的学习率 参考文献 [原创]Liu_LongPo 转载请注明出处[C

学习笔记TF026:多层感知机

隐含层,指除输入.输出层外,的中间层.输入.输出层对外可见.隐含层对外不可见.理论上,只要隐含层节点足够多,只有一个隐含层,神经网络可以拟合任意函数.隐含层越多,越容易拟合复杂函数.拟合复杂函数,所需隐含节点数,随隐含层数量增多指数下降. 过拟合,模型预测准确率在训练集上升,在测试集下降.泛化性不好,模型记忆当前数据特征,不具备推广能力.参数太多.Hinton教授团队,Dropout.随便丢弃部分输出数据节点.创造新随机样本,增大样本量,减少特征数量,防止过拟合.bagging方法,对特征新种采

学习笔记TF027:卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN),可以解决图像识别.时间序列信息问题.深度学习之前,借助SIFT.HoG等算法提取特征,集合SVM等机器学习算法识别图像. SIFT,缩放.平移.旋转.视角转变.亮度调整畸变的一定程度内,具有不变性.有局限性,ImageNet ILSVRC比赛最好结果错误率在26%以上,常年难以突破. 卷积神经网络提取特征效果更好,分类训练时自动提取最有效特征.卷积神经网络CNN,降低图像数据预处理要求,避免复杂特征工程.CNN使用

ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程)

ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程) ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl. 于是最近就开始搞这个了,教程加上matlab编程,就是完美啊. 新教程的地址是:http://ufldl.stanford.edu/tutorial/ 本节学习地址:http://ufldl.stanfor

模式分类 学习笔记 第6章 多层神经网络

6.1引言 线性分类在解决很多问题是取得的最小误差率还显得不够! 一个精确选择的非线性函数,可以得到任意判决边界.但主要的困难是如何选择非线性函数.一个完备的基函数可能得到较好的效果,但可能会有太多的参数需要估计,而训练样本总是有限的! 再或者我们可能有先验知识引导我们选择非线性函数,但如果缺少这些信息,就无法自动选择非线性函数. 多层神经网络是一种在训练线性判别函数的同时学习其非线性程度的方法???决定非线性映射的参数的学习与控制线性判别函数的参数的学习同时进行的??? 多层神经网络基本上的执

ufldl学习笔记与编程作业:Convolutional Neural Network(卷积神经网络)

ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl. 于是最近就开始搞这个了,教程加上matlab编程,就是完美啊. 新教程的地址是:http://ufldl.stanford.edu/tutorial/ 本节学习地址:http://ufldl.stanford.edu/tutorial/supervised/ConvolutionalNeuralNetwork/ 一直没更

Neural Networks and Deep Learning(神经网络与深度学习) - 学习笔记

catalogue 0. 引言 1. 感知器及激活函数 2. 代价函数(loss function) 3. 用梯度下降法来学习-Learning with gradient descent 4. 用反向传播调整神经网络中逐层所有神经元的超参数 5. 过拟合问题 6. IMPLEMENTING A NEURAL NETWORK FROM SCRATCH IN PYTHON – AN INTRODUCTION 0. 引言 0x1: 神经网络的分层神经元意味着什么 为了解释这个问题,我们先从一个我们熟