深入浅出BP神经网络算法的原理

        相信每位刚接触神经网络的时候都会先碰到BP算法的问题,如何形象快速地理解BP神经网络就是我们学习的高级乐趣了(画外音:乐趣?你在跟我谈乐趣?)

本篇博文就是要简单粗暴地帮助各位童鞋快速入门采取BP算法的神经网络。

BP神经网络是怎样的一种定义?看这句话:一种按“误差逆传播算法训练”的多层前馈网络。

        BP的思想就是:利用输出后的误差来估计输出层前一层的误差,再用这层误差来估计更前一层误差,如此获取所有各层误差估计。这里的误差估计可以理解为某种偏导数,我们就是根据这种偏导数来调整各层的连接权值,再用调整后的连接权值重新计算输出误差。直到输出的误差达到符合的要求或者迭代次数溢出设定值。

说来说去,“误差”这个词说的很多嘛,说明这个算法是不是跟误差有很大的关系?

没错,BP的传播对象就是“误差”,传播目的就是得到所有层的估计误差。

它的学习规则是:使用最速下降法,通过反向传播(就是一层一层往前传)不断调整网络的权值和阈值,最后使全局误差系数最小。

它的学习本质就是:对各连接权值的动态调整。

          

拓扑结构如上图:输入层(input),隐藏层(hide layer),输出层(output)

BP网络的优势就是能学习和储存大量的输入输出的关系,而不用事先指出这种数学关系。那么它是如何学习的?

BP利用处处可导的激活函数来描述该层输入与该层输出的关系,常用S型函数δ来当作激活函数。

              

我们现在开始有监督的BP神经网络学习算法:

1、正向传播得到输出层误差e

=>输入层输入样本=>各隐藏层=>

### 如何在 MySQL截取日期字段的值 #### 使用 `DATE()` 函数提取日期部分 当处理 `DATETIME` 或 `TIMESTAMP` 类型的数据时,如果只需要获取其中的日期部分,则可以使用 `DATE()` 函数。此函数会返回给定时间表达式的日期部分。 ```sql SELECT DATE(datetime_column) AS date_only FROM table_name; ``` 该查询语句将会把表内名为 `datetime_column` 的列中的每一个 `DATETIME` 值转换成仅含年月日的形式并显示出来[^1]。 #### 利用 `YEAR()`, `MONTH()`, 和 `DAY()` 提取出具体组件 对于更细粒度的操作来说,还可以单独调用专门用于取得特定组成部分(比如年份、月份或是天数)的函数: - 获取年份:`YEAR(date_column)` - 获取月份:`MONTH(date_column)` 或者 `EXTRACT(MONTH FROM date_column)` - 获取日子:`DAYOFMONTH(date_column)` 或者 `EXTRACT(DAY FROM date_column)` 下面是一个例子展示怎样分别获得各个成分: ```sql SELECT YEAR(datetime_column), MONTH(datetime_column), DAY(datetime_column) FROM table_name; ``` 这将返回三列数据,每列表示对应记录里存储的时间戳所对应的那一年、那一月以及那一天的信息。 #### 应用 `STR_TO_DATE()` 结合其他字符串操作函数自定义格式化输出 有时候可能希望按照某种特殊的格式来呈现日期信息,在这种情况下就可以考虑先利用 `DATE_FORMAT()` 将其转化为所需的样式再进一步加工;或者是反过来,如果有现成但是不符合预期模式的文字串表示形式的话也可以借助于 `STR_TO_DATE()` 来解析回标准日期对象以便后续计算或比较。 例如要得到形如 "YYYY-MM-DD" 这样的纯文本格式的结果集可以用如下方式达成目标: ```sql SELECT DATE_FORMAT(datetime_column,'%Y-%m-%d') formatted_date FROM table_name; ``` 而若是面对的是像 '2023/7/8' 这样带斜杠分隔符的日文输入则可通过下述手段转为内部认可的标准类型: ```sql SELECT STR_TO_DATE('2023/7/8','%Y/%c/%e'); ``` 这里 `%Y`, `%m`, `%d` 是指代四位数年的占位符、两位数月份数字还有单个数字代表的一号到三十几号之间任意一天的意思[^4]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值