数学之路(3)-机器学习(3)-机器学习算法-神经网络[11]

2023-05-16

多层感知器的代码,需要一个比较复杂的调试过程,不过也有一些方法来加快这一速度,其中有几个地方要注意:

1、输入层、输出层、中间层的学习率和动量参数不能一样,

2、3个层的权值策略不能一样

   输入层的权值的最好效果是能将相差较大的输入样本,输出成分布不能太接近饱和的输出

关于权值初始化的问题,可以考虑 Nguyen-Widrow algorithm,这也是matlab的权值矩阵初始化策略

   采用tanh函数,要意识到,它的输出极限是[-a,+a]

3、在输出层外加上一个硬限幅层,保证输出为需要的结果

硬限幅层要灵活,不一定是下面这种形式

if v>=0:

       return 1

else:

      return 0

因为我们的输出值只有2个,所以可以暂时先设为这种形式,以后进行改进:


def o_func(myy):
        myresult=[]
        for i in xrange(0,len(myy)):
                mean=np.mean(myy)
                if myy[i]>mean:
                        myresult.append(1.0)
                else:
                        myresult.append(0.0)
        return np.array(myresult)





本博客所有内容是原创,未经书面许可,严禁任何形式的转载

http://blog.csdn.net/u010255642



最后,总结一下,多层感知器网络是门艺术,不能说是一个非常严谨的科学,带有随机性,虽然有梯度下降,动量调整的数学基础

下面是对下面这组输入 数据进行训练,最后对未知样本进行仿真

x = [[4,11],[7,340],[10,95],[3,29],[7,43],[5,128]]
d =[[1,0],[0,1],[1,0],[0,1],[1,0],[0,1]]

结果如下:

.......

......

-------开始第33次训练---------

-------开始第1个样本----------

前向计算中...

反向计算中...

-------开始第2个样本----------

前向计算中...

反向计算中...

-------开始第3个样本----------

前向计算中...

反向计算中...

-------开始第4个样本----------

前向计算中...

反向计算中...

-------开始第5个样本----------

前向计算中...

反向计算中...

-------开始第6个样本----------

前向计算中...

反向计算中...

训练成功,正在进行检验

仿真计算中

仿真计算中

仿真计算中

仿真计算中

仿真计算中

仿真计算中

训练成功,误差为:0.000000

样本:4===11 => 

仿真计算中

[ 1.  0.]

=====正确目标值=====

[1, 0]

样本:7===340 => 

仿真计算中

[ 0.  1.]

=====正确目标值=====

[0, 1]

样本:10===95 => 

仿真计算中

[ 1.  0.]

=====正确目标值=====

[1, 0]

样本:3===29 => 

仿真计算中

[ 0.  1.]

=====正确目标值=====

[0, 1]

样本:7===43 => 

仿真计算中

[ 1.  0.]

=====正确目标值=====

[1, 0]

样本:5===128 => 

仿真计算中

[ 0.  1.]

=====正确目标值=====

[0, 1]

测试值:9.000000===80.000000 

仿真计算中

[ 1.  0.]

正确目标值:[1,0]

测试值:6.500000===272.000000 

仿真计算中

[ 0.  1.]

正确目标值:[0,1]

>>>



同时因为输入数据五花八门,在训练之前要对数据进行预处理,通过预处理权值矩阵使其数值不能过大或过小,这样能较好得保证,

在随后的训练中通过S型非线性神经元,输出不会太接近极限

如下面输入的 数据分布



通过调整后转换成下面的均匀分布,将更有助于后面的训练




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数学之路(3)-机器学习(3)-机器学习算法-神经网络[11] 的相关文章

  • FreeRTOS系列|任务挂起和恢复

    任务挂起和恢复 1 任务挂起和恢复API函数 vTaskSuspend 函数 xff1a 将任务置于挂起状态 span class token keyword void span span class token function vTas
  • vscode 代码特效插件 让你的代码写出火花

    如果你经常觉得写代码是一件无趣的事情 xff0c 那么这里有一款插件推荐给你 xff0c 可以给你枯燥无味的写代码时添加一些趣味 这款插件名字叫做 power mode 现在我来教你如何下载它 xff0c 并且使用它 1 下载插件 打开vs
  • 【STM32】入门(十二):实时操作系统RTOS和通用操作系统GPOS的区别

    STM32 STM32单片机总目录 1 简述 实时操作系统 RTOS xff0c Real Time Operating System 通用操作系统 GPOS xff0c General Purpose Operating System 2
  • 【STM32】入门(十四):FreeRTOS-任务

    1 简述 FreeRTOS应用程序由一组独立的任务构成 在任何时间点 xff0c 应用程序中只能执行一个任务 xff0c FreeRTOS调度器负责决定所要执行的任务 每个任务在自己的上下文中执行 xff0c 不依赖于系统内的其他任务或 F
  • 【SBUS】一文看懂SBUS协议

    STM32 STM32单片机总目录 1 简介 S BUS是一个串行通信协议 xff0c S BUS是FUTABA提出的舵机控制总线 xff0c S bus使用RS232C串口的硬件协议作为自己的硬件运行基础 使用TTL电平 xff0c 即3
  • 【ubuntu】ubuntu14.04、16.04、18.04 LTS版本支持时间

    0 历史版本下载地址 http old releases ubuntu com releases http mirrors 163 com ubuntu releases 1 官网说明 https wiki ubuntu com Kerne
  • 树莓派,tx2硬件对比

    具体参考以下链接 http www exuehao com article detail 14
  • Gazebo中的平面运动 (urdf+控制器设置)及所遇见的问题

    这里有个视频 xff0c 介绍怎么让机器人在平面运动 xff08 在x和y方向上进行平移 xff09 xff1a https www youtube com watch v 61 mtSpqObg9X4 如果你们看不了视频也没关系 xff0
  • 2014年年终总结:写书成长,承载收获

    雪花纷飞 xff0c 任你飘落凝成魅力的雪域之城 美丽的守候 xff0c 望长城内外惟余莽莽 数着北国春夏秋冬的每一天 xff0c 2014 的日历天天换新装 xff0c 消瘦了你的时光 但丰盈了我的渴望 2014 年 xff0c 在你的身
  • 漫步数学分析三十五——乘法法则与梯度

    微分中另一个有名的法则是乘法法则或莱布尼兹法则 定 理 6 令 A R n 是开集 xff0c f A R m g A R 是可微函数 xff0c 那么 g f 是可微的并且对于 x A D g f x R n R m 为 D
  • CAN总线标准及协议分析

    目录 1 简介 2 CAN总线标准 2 1 物理层 2 1 1 CAN总线网络 2 1 2 CAN收发器 2 1 3 CAN信号表示 2 1 4 CAN信号传输 2 2 数据链路层 2 2 1 数据帧 2 2 1 1 帧起始与结束帧 2 2
  • Eclipse中Python开发环境搭建详细图文教程(Windows环境)

    转载请注明出处 Eclipse可便捷的集成开发Python xff0c 这里我们为了更好地使用Python进行机器学习 xff0c 首先进行Eclipse中Python开发环境的搭建 一 下载EclipseIDE 下载地址 xff1a ht
  • FreeRTOS系列|多任务调度

    多任务调度 1 多任务启动流程 多任务启动流程如下表所示 启动后以下各函数由上至下依次执行含义osKernelStart 启动内核vTaskStartScheduler 启动任务调度器xPortStartScheduler 启动调度器prv
  • Realsense d435i驱动安装、配置及校准

    写在前面 本文是在ubuntu20 04下安装 xff0c 其它版本大同小异 可能出现的问题 xff0c 主要由各自安装相关库版本不一致导致 xff0c 故问题不一 xff0c 但一般很好解决 xff0c 正常情况下不会出现 Intel R
  • Realsense d435i内参、外参标定

    使用工具code utils imu utils kalibr对Realsense d435i 内参 外参标定 本文介绍上述工具的安装 xff0c 及标定方法 一 code utils安装 1 建立工作空间 mkdir p calibrat
  • 从零完成slam实战,以Vins-Fusion为例

    写在前面 1 本文以vins fusion为例 xff0c 是因为其框架正统 简单清晰 xff0c 易于调试和后续改进 xff1b camera imu外参及同步时间td可实时估计 xff1b 已有融合gps方案且较为容易可添加融合其它传感
  • Vins-Fusion整体框架,数据流分析

    一 VINS Fusion VINS Fusion是一种基于优化的多传感器状态估计器 xff0c 可实现自主应用 xff08 无人机 汽车和AR VR xff09 的精确自我定位 VINS Fusion是VINS Mono的扩展 xff0c
  • Vins-Fusion初始化位姿——3D-2D:PNP求解当前帧位姿

    继上一篇博文Vins Fusion 外参camera imu 标定 xff0c 本文继续介绍Vins Fusion初始化时 xff0c 通过PNP求解当前帧位姿 一 3D 2D xff1a PNP PnP是求解3D到2D点对运动的估计 xf
  • ORB_SLAM3启动流程以stereo_inertial_realsense_D435i为例

    概述 ORB SLAM3 是第一个同时具备纯视觉 xff08 visual xff09 数据处理 视觉 43 惯性 xff08 visual inertial xff09 数据处理 和构建多地图 xff08 multi map xff09
  • BoW(词袋)模型详细介绍

    最近学习BoW模型 xff0c 将自己网上看到的资料及对论文的理解 xff0c 将BoW模型总结如下 xff01 BoW模型 Bag of words model BoW model 最早出现在自然语言处理 xff08 Natural La

随机推荐

  • Win10 VS Code + CMake STM32开发环境

    Win10 VS Code 43 CMake STM32开发环境 软件 软件安装与环境变量的配置不多讲 xff0c 这步都搞不定还是老老实实用MDK把 VS Codecmake 插件 c c 43 43 插件mingwgcc arm non
  • makefile 转 cmake STM32工程

    makefile 转 cmake STM32工程 STM32开发由MDK转到 vscode好久了 每次新建工程 xff0c stm32cubemx生成代码都要手动把makefile转到cmake xff0c 好烦 xff0c 特别一下小的频
  • STM32使用FreeRtos + C++

    编译环境 MDK5 25 gcc arm7 2 C文件不可包含CPP的头文件 C调用C 43 43 函数 在CPP文件内编写C函数 xff0c 头文件声明 头文件不可出现C 43 43 关键字 在main中调用此函数作为程序入口即可 voi
  • FreeRTOS系列|时间管理

    FreeRTOS时间管理 1 FreeRTOS延时函数 在使用FreeRTOS的过程中经常会在一个任务中使用延时函数对该任务延时 xff0c 当执行延时函数的时候就会进行任务切换 xff0c 并且此任务就会进入阻塞态 xff0c 直到延时完
  • 【Linux C与C++一线开发实践】之一 Linux概述与Linux C++开发

    Linux系统启动的基本过程 对于一台Linux系统来说 xff0c 用户按下开机按钮后 xff0c 一共要经历如下几个过程
  • 【Linux C与C++一线开发实践】之三 Linux多进程

    进程是操作系统结构的基础 进程是一个具有独立功能的程序对某个数据集在处理机上的执行过程 xff0c 进程也是作为资源分配的一个基本单位 Linux作为一个多用户 多任务的操作系统 xff0c 必定支持多进程 多进程是现代操作系统的基本特征
  • C++--结构体和类

    结构体和类只有一个区别就是前者访问控制默认为public xff0c 而类的默认访问控制是private 而对于public private protected的访问控制都是在编译期间由编译器检查的 xff0c 编译通过后 xff0c 程序
  • 嵌入式开发工程师面试题 – C语言部分

    嵌入式开发工程师面试题 C语言部分 申明 xff1a 来源于嵌入式开发工程师面试题 C语言部分 和 网摘 xff09 xff01 1 内核的裁剪怎么裁剪 解析 xff1a 在linux 下的ubuntu 上面做内核的 裁剪 xff0c 主要
  • 协方差与自相关

    协方差矩阵是一个矩阵 xff0c 其每个元素是各个向量元素之间的协方差 这是从标量随机变量 到高维度随机向量 的自然推广 假设是以个标量随机变量组成的列向量 xff0c 并且是其第i个元素的期望值 xff0c 即 协方差矩阵被定义的第i x
  • 基础解系

    基础解系首先是线性无关的 xff0c 简单的理解就是能够用它的线性组合表示出该 方程组的任意一组解 xff0c 基础解系是针对有无数多组解的方程而言 xff0c 若是齐次线性方程组则应是有效方程组的个数少于未知数的个数 xff0c 若非齐次
  • 机器学习实践指南:案例应用解析(第二版)

    试读及购买链接 机器学习实践指南2版代码及资源 原书中的360网盘链接因为360关闭网盘的原因已经失效 1 https pan baidu com s 1nw37A5N 2 http www hzbook com Books 9324 ht
  • 数学之路-python计算实战(7)-机器视觉-图像产生加性零均值高斯噪声

    图像产生加性零均值高斯噪声 xff0c 在灰度图上加上噪声 xff0c 加上噪声的方式是每个点的灰度值加上一个噪声值 xff0c 噪声值的产生方式为Box Muller算法 生成高斯噪声 在计算机模拟中 xff0c 经常需要生成正态分布的数
  • 数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)

    coding utf 8 code myhaspl 64 myhaspl com 邻域平均法滤波 半径为2 import cv2 import numpy as np fn 61 34 test3 jpg 34 myimg 61 cv2 i
  • R语言与数据模型(1)-平均,方差,中位数,分位数,极差

    1 求平均数 gt x lt c 1 10 20 30 40 50 NA 60 gt xm lt mean x gt xm 1 NA na rm表示允许缺失数据NA gt xm lt mean x na rm 61 TRUE gt xm 1
  • FreeRTOS系列|中断管理和临界段

    FreeRTOS中断管理和临界段 1 中断管理 1 1 中断管理简介 中断是微控制器的一个常见特性 xff0c 中断由硬件产生 xff0c 当中断产生后CPU就会中断当前的流程转而去处理中断服务 xff0c Cortex M内核的MCU提供
  • AI理论随笔-对称矩阵、正交矩阵与特征向量,特征值(2)

    一 如果 xff1a A A T 61 E AA T 61 E A A T 61 E
  • 英文过滤停用词

    span class token triple quoted string string 34 34 34 Created on Sun Nov 13 09 14 13 2016 64 author daxiong 34 34 34 spa
  • C语言随笔-去掉仅有\n的行

    include lt stdio h gt int main int argc const char argv char str 128 char linep strcpy str 34 12 35 56 n12 33 87 n n n n
  • python3.6-深入浅出视频

    课程收益 适合人群 python小白 xff0c 大数据和机器学习编程程序员 上机实践为主线 以最快的速度上手 快速入门 xff0c 还学到了python3的核心知识 https edu csdn net course detail 989
  • 数学之路(3)-机器学习(3)-机器学习算法-神经网络[11]

    多层感知器的代码 xff0c 需要一个比较复杂的调试过程 xff0c 不过也有一些方法来加快这一速度 xff0c 其中有几个地方要注意 xff1a 1 输入层 输出层 中间层的学习率和动量参数不能一样 xff0c 2 3个层的权值策略不能一