TensorFlow入门(二十五、单个神经元的扩展——Maxout网络)

Maxout网络的原理

Maxout是Goodfellow在2013年提出的一个新的激活函数,与其它的激活函数相比,Maxout是需要参数的,且参数可以通过网络的反向传播得到学习,因此它比其它激活函数有着更好的性能,理论上可以拟合任意凸函数,进而使得网络取得更好的性能。

Maxout网络主要是扩展单个神经元里面的激活函数,可以将Maxout网络理解为是单个神经元的扩展。

单个神经元的网络模型如图所示:

计算公式为:

而Maxout网络是将激活函数变成一个网络选择器,原理是将多个神经元并列地放在一起,从它们的输出结果中找到最大的那个,代表对特征响应最敏感,然后取这个神经元的结果参与后面的运算。如图所示:

Maxout网络的激活函数有多个,每个的公式各不相同,可以理解成:

最后输出的为所有结果中值最大的那个。相当于同时把多个神经元放在一起使用,哪个神经元的效果最好,就用哪个,从而得到更好的拟合效果。

Maxout网络的应用

在TensorFlow中,通过reduce_max函数构建Maxout网络:

tf.reduce_max(input_tensor,axis = None,name = None)

reduce_max函数按axis方向对多个神经元的输出结果求最大值,然后将最大值当作输入按照神经元正反传播方向进行计算。

该函数一共有三个参数,input_tensor为输入的tensor对象;axis为计算方向,axis = 0时按列求最大值,axis = 1时按行求最大值。

有时,参数axis会变为reduction_indices,用途是一样的:

tf.reduce_max(input_tensor,reduction_indices = None)

相关推荐
ZTLJQ3 小时前
序列化的艺术:Python JSON处理完全解析
开发语言·python·json
H5css�海秀4 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
SuniaWang4 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
阿贵---4 小时前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python
无敌昊哥战神4 小时前
【LeetCode 257】二叉树的所有路径(回溯法/深度优先遍历)- Python/C/C++详细题解
c语言·c++·python·leetcode·深度优先
IDZSY04305 小时前
AI社交平台进阶指南:如何用AI社交提升工作学习效率
人工智能·学习
七七powerful5 小时前
运维养龙虾--AI 驱动的架构图革命:draw.io MCP 让运维画图效率提升 10 倍,使用codebuddy实战
运维·人工智能·draw.io
水星梦月5 小时前
大白话讲解AI/LLM核心概念
人工智能
温九味闻醉5 小时前
关于腾讯广告算法大赛2025项目分析1 - dataset.py
人工智能·算法·机器学习
White-Legend5 小时前
第三波GPT5.4 日400刀
人工智能·ai编程