6.人工智能原理-隐藏层:神经网络为什么working?

文章介绍了隐藏层在神经网络中的作用,通过增加隐藏层神经元以解决更复杂的非单调函数问题。深度学习是指隐藏层较多的神经网络,其工作原理依赖于数据训练和参数调整。编程实验展示了如何构建和训练一个带隐藏层的神经网络,用于模拟豆豆毒性预测问题。

目录

一、引言

二、隐藏层

三、深度学习(炼丹)

三、编程实验

四、总结

五、往期内容


一、引言

       大自然往往是变幻莫测,喜怒无常。在一次地球环境巨变之后,小蓝所在的海底生物们也经历了巨大的进化。豆豆变得不再是简单的越大或者越小越可能有毒,而是在某个大小范围内有毒,而某些范围内无毒,比如这样。此时,不论是不加激活函数的预测模型,还是加了激活函数的预测模型,似乎都开始变得无能为力了。此刻新的豆豆的毒性却变得忽大忽小,想要预测它们,不再是像以前一样单调的函数。

二、隐藏层

       那么,如何让预测模型能够产生这种山丘一样的曲线?是时候让神经元形成一个网络!我们唯一做的事情就是多添加了两个神经元,并把输入分别送入到这两个神经元进行计算,再把计算的结果送入到第三个神经元计算最后输出。

我们用可视化工具调节一下这三个神经元的参数。最后得到这样的一个效果,分类成功。

 在这里插入图片描述

所以为什么会这样?其实很简单,对于第一个和第二个神经元,先通过线性函数计算,再通过激活函数得到最终的输出,而利用梯度下降算法,最终的输出一定可以被调节成为现在这个样子。

把这两个神经元的最终输出作为第三个神经元的输入,先通过第三个神经元的线性函数计算,乘上权重,再通过激活函数并利用梯度下降算法,把最终的输出调节成为这个样子。 

       也就是说,把输入分为两个部分,然后分别对这两个部分进行调节,然后再送入最后一个神经元,让整体的神经网络形成一个单调性、不唯一的多变函数,从而具备了解决更加复杂问题的能力。

       一般地我们让网络结构图更加简洁,会省略调偏置项b:

中间这些新添加了神经元节点,也称之为隐藏层

services: calfBreeding-gateway: image: e340ec083b11 container_name: calfBreeding-gateway-container volumes: - ./ruoyi-gateway.jar:/app/ruoyi-gateway.jar - ./logs:/app/logs working_dir: /app command: java -jar -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 ruoyi-gateway.jar ports: - "20004:20004" restart: unless-stopped # 自动重启策略 environment: # 可选:设置JVM参数,例如限制内存使用 - JAVA_OPTS=-Xmx512m -Xms256m networks: - modules_default # 必须加入同一网络 calfBreeding-auth: image: e340ec083b11 container_name: calfBreeding-auth-container volumes: - ./ruoyi-auth.jar:/app/ruoyi-auth.jar - ./logs:/app/logs working_dir: /app command: java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar ruoyi-auth.jar ports: - "20003:20003" restart: unless-stopped # 自动重启策略 environment: # 可选:设置JVM参数,例如限制内存使用 - JAVA_OPTS=-Xmx512m -Xms256m networks: - modules_default # 必须加入同一网络 calfBreeding-system: image: e340ec083b11 container_name: calfBreeding-system-container volumes: - ./ruoyi-system.jar:/app/ruoyi-system.jar - ./logs:/app/logs - /data/work/jar/calfbreeding_jar/license.lic:/data/work/jar/calfbreeding_jar/license.lic - /data/work/jar/calfbreeding_jar/public.key:/data/work/jar/calfbreeding_jar/public.key working_dir: /app command: java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar ruoyi-system.jar ports: - "20005:20005" restart: unless-stopped # 自动重启策略 environment: # 可选:设置JVM参数,例如限制内存使用 - JAVA_OPTS=-Xmx512m -Xms256m networks: - modules_default # 必须加入同一网络 calfBreeding-cattle: image: e340ec083b11 container_name: calfBreeding-cattle-container volumes: - ./ruoyi-cattle.jar:/app/ruoyi-cattle.jar - ./logs:/app/logs working_dir: /app command: java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar ruoyi-cattle.jar ports: - "20014:20014" restart: unless-stopped # 自动重启策略 networks: - modules_default # 必须加入同一网络 calfBreeding-resource: image: e340ec083b11 container_name: calfBreeding-resource-container volumes: - ./ruoyi-resource.jar:/app/ruoyi-resource.jar - ./logs:/app/logs - /data/upload/home:/data/upload/home working_dir: /app command: java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar ruoyi-resource.jar ports: - "20008:20008" restart: unless-stopped # 自动重启策略 networks: - modules_default # 必须加入同一网络 calfBreeding-job: image: e340ec083b11 container_name: calfBreeding-job-container volumes: - ./ruoyi-job.jar:/app/ruoyi-job.jar - ./logs:/app/logs working_dir: /app command: java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar ruoyi-job.jar ports: - "9002:9002" restart: unless-stopped # 自动重启策略 environment: # 可选:设置JVM参数,例如限制内存使用 - JAVA_OPTS=-Xmx512m -Xms256m networks: - modules_default # 必须加入同一网络 # 统一网络配置(所有服务都要指定这个网络) networks: modules_default: driver: bridge name: modules_default external: true 根据上面的描述,这是我compose完整配置,怎么改?
最新发布
09-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值