[笔记]最简单的神经网络
来源:互联网 发布:什么是淘宝死店 编辑:程序博客网 时间:2024/06/06 09:50
按照网上的教程一步步,慢慢地做神经网络
第一次做,很简单的那种,网上的教程很多
测试数据集:
x: y:
0 0 1 0
1 1 1 1
1 0 1 1
0 1 1 0
用了sigmoid函数作为作用函数
这个函数在(0,1)上连续
是比较常用的作用函数
syn0是权重矩阵
迭代过程就是对于权重的一个修正过程
np.dot(L0,syn0)是矩阵乘法得到(4*1)的矩阵
放到nonlin上之后,就对每个元素都做了一个作用(这个作用取决于作用函数)
这个作用过后得到新的值,就是所谓的L1
L1_Errror 就是 误差值,属于(-1,1)
(4*1)size
将L1放到那个求导之后的函数中
L1_Erroe 和 f'(L1)之间发生的其实是(.*)
即对应位置相乘
从而得到要处理的delte
delte和数据集的矩阵发生矩阵乘法,再与原权重集合进行相加之后,就得到了我们想要的新权重集合
(非常抱歉,我也不是很理解这个为什么这个权重集合要这样改变,如果您有相关的信息,麻烦您在评论区给予指引,不胜感激)
按照网上教程打的代码,如下:
import numpy as npdef nonlin(x, deriv=False): if deriv: return x*(1 - x) return 1/(1+np.exp(-x))X = np.array([[0, 0, 1], [1, 1, 1], [1, 0, 1], [0, 1, 1]])Y = np.array([[0, 1, 1, 0]]).Tnp.random.seed(1)syn0 = 2*np.random.random((3, 1)) - 1 # 得到的数据为[-1,1)# 迭代次数for iter in range(10000): L0 = X L1 = nonlin(np.dot(L0, syn0)) L1_Error = Y - L1 L1_delta = L1_Error * nonlin(L1, True) syn0 += np.dot(L0.T, L1_delta)print(L1)
阅读全文
0 0
- [笔记]最简单的神经网络
- 最简单的二进制神经网络
- 最简单的人工神经网络实现
- 最简单的三层神经网络Matlab实现
- 最简单的全连接神经网络实现
- 实现一个最简单的神经网络
- tensorflow 学习笔记11 最简单的循环神经网络(RNN)
- 手动实现简单的神经网络(唐宇迪神经网络课程笔记)
- 机器学习笔记--实现简单的神经网络
- matlab 神经网络训练与仿真 最简单的例子
- 用最简单的神经网络识别手写数字
- tensorflow学习:建立一个最简单的神经网络
- tensorflow笔记(二)之构造一个简单的神经网络
- tensorflow笔记(二)之构造一个简单的神经网络
- python实现最简单循环神经网络(RNNs)
- 神经网络与深度学习学习笔记:简单神经网络的矩阵化
- 神经网络的简单理解
- 神经网络的简单理解
- makefile
- 选择排序和插入排序
- 极光推送集成流程
- final关键字
- UI设计师职场升级的小秘密
- [笔记]最简单的神经网络
- WEB API 系列(二) Filter的使用以及执行顺序
- 使用java.nio.file.WatchService监控文件夹里的文件再操作文件出现的“文件不存在或目录不存在”的错误
- Android打开其他App
- Servlet MVC
- Snackbar使用详解及其相关框架TSnackbar
- 关于bootstrap中table的表格固定列
- 279. Perfect Squares
- 【安全问道】系列:阿里带你3分钟掌握一个互联网