前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >神经网络算法总结—ML NOTE 57

神经网络算法总结—ML NOTE 57

作者头像
讲编程的高老师
发布2020-11-12 17:10:31
3400
发布2020-11-12 17:10:31
举报

01

笔记

前面几个小节都讲了神经网络的一些东东,因为神经网络在机器学习中的地位实在是太重要了,所以需要单独一节把前面学到的事总结一下。

确定神经网络的结构

神经网络的结构呢,无非就是输入层、输出层外加隐藏层,那隐藏层有几层?每一层有多少个神经元?输入层、输出层分别又有多少个单元?

那这些多少,到底该是多少呢?在进行神经网络训练之前必须回答这些问题。

首先,输入层的单元数是由你的自变量的维度决定的;

其次,输出层的单元数又是由要分类的问题最终分成多少个类来决定的。

因此,神经网络结构的选择问题,实质上就是要确定隐藏层的层数以及各隐藏层的单元数目。

以3个输入单元、4个输出单元的神经网络为例,常见的隐藏层的设置如下图所示。

按分类的效果来说呢,隐藏层的单元数是越多越好的,但是过多的神经元会让训练相当的缓慢,因此需要平衡一下,一般将隐藏层的单元数设置为输入层单元数的2~4倍为宜。而隐藏层的层数呢就以1、2、3层比较常见。

神经网络训练的一般步骤

Step1:随机初始化权重;

Step2:实现前向传播算法,拿到各个输入的激活函数;

Step3:编码计算代价函数;

Step4:实现反向传播计算激活函数的偏导数。

看一下伪代码:

代码中的m是训练样本的个数。

Step5:使用梯度检验验证反向传播计算偏导数的代码是否正确,如果正确就关闭掉梯度检验部分的代码。

Step6:结合一些更优秀的算法算出能使代价函数最小的那些参数。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 讲编程的高老师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 确定神经网络的结构
  • 神经网络训练的一般步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档