神经网络用python还是matlab_Matlab与神经网络学习笔记
这是学习《Neural Network and Deep Learning》的笔记。在刚开始学习时,电脑安装的是python3,而作者用的是2.我想着反正要熟悉代码,大学期间MATLAB用的比较多,也懒得去折腾python2或是重写成python3.于是用MATLAB完成了里面的实例和例题。这本书很适合新手,特别是像我这种非科班的人。通过启发式的思想引导读者由浅入深,自己动手操作代码,成就感很强。这个笔记主要是书本里例子的操作,还有习题的解答,难免会有错误,欢迎指正。
下面就是前两章的主要代码,后面的内容都是在这基础上修改的。
function NW(a)
%NW([784,30,10])
global NetWork;
NetWork.length = length(a);
for i=2:1:NetWork.length
NetWork.bias{i-1} = randn(a(i),1);
NetWork.weight{i-1} = randn(a(i),a(i-1));
end
end
function update_mini_batch(mini_batch,eta,mini_batch_size)
global NetWork;
for i=1:1:NetWork.length-1;
nabla_bi{i} = zeros(size(NetWork.bias{i}));
end
for i=1:1:NetWork.length-1;
nabla_wi{i} = zeros(size(NetWork.weight{i}));
end
for i=1:1:mini_batch_size
[delta_nabla_b,delta_nabla_w] = backprop(mini_batch{1,1}(:,i),mini_batch{1,2}(i));
for j=1:NetWork.length-1
nabla_bi{j} = nabla_bi{j} + delta_nabla_b{j};
nabla_wi{j} = nabla_wi{j} + delta_nabla_w{j};
end
end
for k = 1:NetWork.length-1
NetWork.weight{k}=NetWork.weight{k}-(eta/mini_batch_size)*nabla_wi{k};
NetWork.bias{k}=NetWork.bias{k}-(eta/mini_batch_size)*nabla_bi{k};
end
end
function [nabla_b,nabla_w] = backprop(x,y)
global NetWork;
for i=1:1:NetWork.length-1;
nabla_b{i} = zeros(size(NetWork.bias{i}));
end
for i=1:1:NetWork.length-1;
nabla_w{i} = zeros(size(NetWork.weight{i}));
end
% 向前传播
activation = x./256;
activations{1} = activation;
for i=1:NetWork.length-1
z = NetWork.weight{i}*activation+NetWork.bias{i};
zs{i} = z;
activation = sigmoid(z);
activations{i+1} = activation;
end
% 向后传播
% 输出层误差:
a = cost_derivative(activations{NetWork.length},y);
b = sigmoid_prime(zs{NetWork.length-1});
delta = cost_derivative(activations{NetWork.length},y).*sigmoid_prime(zs{NetWork.length-1});
nabla_b{NetWork.length-1} = delta;
nabla_w{NetWork.length-1} = delta*activations{NetWork.length-1}';
for i=NetWork.length-2:-1:1
z = zs{i};
sp = sigmoid_prime(z);
delta = (NetWork.weight{i+1}'*delta).*sp;
nabla_b{i}=delta;
nabla_w{i}=delta*activations{i}';
end
end
function c = cost_derivative(output_activations,y)
y1 = zeros(10,1);
y1(y+1) = 1;
c = output_activations - y1;
end
function s = sigmoid(z)
s = (1./(1+exp(-z)));
end
function sp = sigmoid_prime(z)
sp = (sigmoid(z).*(1-sigmoid(z)));
end
```
神经网络用python还是matlab_Matlab与神经网络学习笔记相关推荐
- Python预测 数据分析与算法 学习笔记(特征工程、时间序列)
微信公众号:数学建模与人工智能 GitHub - QInzhengk/Math-Model-and-Machine-Learning 第3章 探索规律 3.1 相关分析 相关关系是一种与函数关系相区别 ...
- Python基础教程-菜鸟教程学习笔记1
Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...
- Python可视化物理随机过程---pygame学习笔记2
Python可视化物理随机过程-pygame学习笔记2 文章目录 Python可视化物理随机过程---pygame学习笔记2 一.扩散现象的简单的介绍 二.代码实现 三.运行代码的效果展示 四.总结 ...
- bp神经网络预测模型python,r语言bp神经网络预测
如何建立bp神经网络预测 模型 . 建立BP神经网络预测模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测2 ...
- python查看方法作用_python学习笔记1,新手小白也能看得懂
这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...
- python 面向对象(类)--学习笔记
面向对象是一种编程方式, 主要集中在类和对象的两个概念 python 中的类符合封装, 继承, 多态的特征 类 是一个模板, 是n多函数的集成 对象 是类的实例化 类的成员分为三大类:字段.方法.属性 ...
- python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度
python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib: matplotlib 1.11 numpy: nump ...
- python矩阵左除_matlab学习笔记
Matlab学习笔记 运算: 1. 算术运算(在矩阵意义下进行) +:要求矩阵同型,对应元素相加减,如果用标量和矩阵相加减,不同型就凉凉提示错误,那就将矩阵每个元素和数字相加减 -:同上 *: ...
- python的基本数据结构_Python学习笔记——基本数据结构
列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...
最新文章
- spring-注入对象list
- bash shell 循环读入每一行(转)
- Properties作为Map集合的特有方法
- SAP ui5 setModel 的核心逻辑
- MySQL - 触发器
- [资源]181个Python开源项目分享!
- IAudioEndpointVolume
- BZOJ2741 【FOTILE模拟赛】L 【可持久化trie + 分块】
- 走进统信软件,读懂国产操作系统新生态建设
- Java核心类库——内部类那点事儿
- Flask详解(下篇)
- Jmeter性能测试实战教程系列-搭建分布式性能测试环境(五)
- Git可视化极简易教程 —— Git GUI使用方法
- moment获取几小时前_请问怎么把“多少小时前”精确到“多少小时多少分钟前”...
- 静态内部类实现单例_为什么用枚举类来实现单例模式越来越流行?
- alter system switch logfile与alter system archive log current
- 可测函数列的依测度收敛性
- 没用东西全部清掉_如何把电脑上无用的东西清理掉,在哪下载
- 商业直播平台都有哪些
- 数据抓取软件是如何抓取数据的?