数学之路(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] 的相关文章

  • RecyclerView的使用(一):基本使用

    前言 对于从事Android开发的朋友们来说 xff0c RecyclerView大家肯定都不陌生 xff0c 这是一个和listView有些相似的列表结构控件 xff0c 可以实现一些基本的列表的显示及事件内容 本期对于RecyclerV
  • 在控制台程序中播放音乐

    看过我的博客的人都知道 xff0c 在C语言中调用几个API函数就可以播放音乐了 xff0c 而我在博客中也写过Windows图形界面编程中做过一些与音乐有关的程序 xff0c 如 音乐播放器 音乐贺卡 等 xff0c 可是如果要你在控制台
  • 常用的DOS命令

    xfeff xfeff CMD命令 xff1a 开始 xff0d gt 运行 xff0d gt 键入cmd或command xff08 在命令行里可以看到系统版本 文件系统版本 xff09 1 appwiz cpl xff1a 程序和功能
  • 链表《5》使用链表实现学生成绩管理系统

    上次我使用动态数组结构体实现了学生成绩管理系统 xff1a http blog csdn net u010105970 article details 17752193 这次学习了链表对链表也有所了解 xff0c 我就想着用链表实现学生成绩
  • 得到一个数字中每一位的数字

    学习编程也有一段时间了 xff0c 随着学习的不断深入 xff0c 我越来越体会到了算法的重要性 xff0c 最近遇到了一些非常有意思的算法 xff0c 比如打印水仙花数 将数字逆置 xff0c 在这两个算法中会用到一个数字钟每一位的值 如
  • 使用C++实现学生管理系统

    我在前面的博客中分别使用C语言的动态数组和链表实现了学生成绩管理系统 xff0c 最近正好在学习C 43 43 xff0c 于是我便使用C 43 43 实现了学生成绩管理系统 xff0c 算法和前面的C语言的动态数组实现的学生成绩管理系统差
  • 制作一个简单的Android版的音乐播放器

    音乐播放器是一个非常常见的应用 xff0c 这篇博客就是介绍如何制作一个简单的音乐播放器 xff0c 这款音乐播放器具有以下的功能 xff1a 播放歌曲 暂停播放歌曲 显示歌曲的总时长 显示歌曲的当前播放时长 调节滑块可以将歌曲调节到任何时
  • 使用Less

    为什么要使用预处理CSS 在使用CSS过程中会遇到一个非常头疼的问题 xff0c 因为CSS中没有像java C 43 43 或者PHP等程序语言一样有有自己的变量 常量 条件语句以及一些编程语法 xff0c 只是一行行单纯的属性描述 xf
  • 使用Gulp

    为什么要使用Gulp 在前端开发中通常需要做 xff0c 预处理语言的编译 js文件的压缩 css文件的压缩 图片的压缩等一系列工作 xff0c 而使用Gulp可以自动化的完成这些工作 xff0c 从而提高网站的开发效率 xff0c 在我的
  • 欢迎使用CSDN-markdown编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • ubuntu mysql密码忘记了怎么办,ubuntu怎么查看mysql密码

    1 首先输入以下指令 xff1a sudo cat etc mysql debian cnf 运行截图如下 xff1a 2 再输入以下指令 xff1a mysql u debian sys maint p 注意 这条指令的密码输入是输入第一
  • Android中调用Ping操作及结果分析

    实现方法 android中调用ping命令需要使用Linux底层的命令 xff1a ping c 1 w 10 ip 其中参数 c 1指的是ping的次数为1 xff0c 参数 w 10指的是超时时间 xff0c 单位为秒 xff0c 超过
  • weblogic12c下载及安装

    下载地址 http www oracle com technetwork middleware weblogic downloads index html 安装步骤 xff1a 1 Extract the contents of the z
  • 休眠后电脑马上自动唤醒解决

    1 显示可唤醒的设备 powercfg devicequery wake programmable 2 显示已经设置为可以唤醒的设备 powercfg devicequery wake armed 3 休眠一下 xff0c 然后运行命令 x
  • Gradle之Wrapper详解

    转自 xff1a Gradle之Wrapper详解 简书 介绍 Wrapper xff0c 看到这个单词大家应该都不陌生 xff0c 它就是位于Android项目根目录下的gradle文件夹中的gradle wrapper properti
  • Spring管理Bean的三种方式

    随时随地阅读更多技术实战干货 xff0c 获取项目源码 学习资料 xff0c 请关注源代码社区公众号 ydmsq666 主要有三种方式 xff1a BeanWrapper BeanFactory和使用ApplicationContext 1
  • android中重写onConfigurationChanged方法响应系统设置更改

    随时随地阅读更多技术实战干货 xff0c 获取项目源码 学习资料 xff0c 请关注源代码社区公众号 ydmsq666 本文中利用按钮动态改变屏幕方向 xff0c 然后重写Activity的onConfigurationChanged方法
  • 执行Scala命令行工具

    1 2 2 执行Scala命令行工具 如果你单独安装了Scala 命令行工具 xff0c 会发现与Java 编译器javac 相似 xff0c Scala 编译器叫作scalac 我们会使用SBT 执行编译工作 xff0c 而不会直接使用s
  • 【Ubuntu】解决ubuntu系统root用户下Chrome无法启动问题

    1 问题描述 ubuntu系统在root用户下无法启动Chrome xff0c 报错 xff1a Running as root without no sandbox is not supported See https crbug com
  • 【ubuntu】在ubuntu下无法输出拼音输入法中的中括号“【” 和 “】”的解决方法

    问题 在新装的ubuntu16 04中 xff0c 打不出中括号 xff0c 而变成 和 解决方法 修改文件 usr share fcitx data punc mb zh CN sudo vi usr share fcitx data p

随机推荐

  • 关于Keil如何设置只编译修改过的文件

    以前用的都是51单片机程序小 xff0c 点击和点击时间都差不多 xff0c 可是最近在用stm32的官方库 xff0c 这是点击全部编译就要浪费大量的时间 xff0c 实际上点击原本只会编译修改过的文件其实现的原理和makefile差不多
  • 2014年年终总结:写书成长,承载收获

    雪花纷飞 xff0c 任你飘落凝成魅力的雪域之城 美丽的守候 xff0c 望长城内外惟余莽莽 数着北国春夏秋冬的每一天 xff0c 2014 的日历天天换新装 xff0c 消瘦了你的时光 但丰盈了我的渴望 2014 年 xff0c 在你的身
  • Protobuf在Android中的基本使用

    前言 Protobuf xff0c 类似于json和xml xff0c 是一种序列化结构数据机制 xff0c 可以用于数据通讯等场景 xff0c 相对于xml而言更小 xff0c 相对于json而言解析更快 xff0c 支持多语言 一 Pr
  • CentOS 使用virsh创建虚拟机

    一 参考 xff1a 1 CentOS 7 6使用virsh创建虚拟机 2 先输入 xff1a yum search qemu kvm 查看是否有qemu kvm可以安装 接着输入 xff1a yum search libvirt 查看是否
  • linux离线搭建SVN服务器系列<二 >

    在linux离线搭建SVN服务器系列 lt 一 gt 里安装svn服务器后 xff0c 接下来就是安装svn客户端了 这里打算以windows客户端和linux为例进行说明 一 linux svn客户端 一 先安装linux svn客户端
  • NDK配置debug环境时:Error:FAILURE: Build failed with an exception

    Error FAILURE Build failed with an exception What went wrong Execution failed for task 39 app externalNativeBuildDebug 3
  • Android 集成OpenCV

    OpenCV下载 一 集成SDK 1 从官网下载最新的android sdk xff0c 这里下载的是4 5 4 2 创建Android项目 xff0c 将sdk以library方式引入项目中 sdk使用了kotlin xff0c 需要配置
  • MyEclipse 控制台等显示在底部

    虽然接触MyEclipse已经有了几年了 xff0c 但是底部的控制台 xff0c 服务 xff0c svn等等显示不清楚 今天百度了 xff0c 发现只要按 Window gt show view gt 选择你要固定在底部的选项 还真方便
  • 协方差与自相关

    协方差矩阵是一个矩阵 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
  • Serializable和Parcelable序列化

    前言 Android中常用的序列化方式包含有两种 xff1a Serializable和Parcelable 其中Serializable是java中通用的对象序列化方法 xff0c 在Android实际内存操作时会更加偏向于实现Parce
  • 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
  • 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个层的权值策略不能一