这是学习《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与神经网络学习笔记相关推荐

  1. Python预测 数据分析与算法 学习笔记(特征工程、时间序列)

    微信公众号:数学建模与人工智能 GitHub - QInzhengk/Math-Model-and-Machine-Learning 第3章 探索规律 3.1 相关分析 相关关系是一种与函数关系相区别 ...

  2. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

  3. Python可视化物理随机过程---pygame学习笔记2

    Python可视化物理随机过程-pygame学习笔记2 文章目录 Python可视化物理随机过程---pygame学习笔记2 一.扩散现象的简单的介绍 二.代码实现 三.运行代码的效果展示 四.总结 ...

  4. bp神经网络预测模型python,r语言bp神经网络预测

    如何建立bp神经网络预测 模型 . 建立BP神经网络预测模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测2 ...

  5. python查看方法作用_python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

  6. python 面向对象(类)--学习笔记

    面向对象是一种编程方式, 主要集中在类和对象的两个概念 python 中的类符合封装, 继承, 多态的特征 类 是一个模板, 是n多函数的集成 对象 是类的实例化 类的成员分为三大类:字段.方法.属性 ...

  7. python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度

    python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib:   matplotlib 1.11 numpy:  nump ...

  8. python矩阵左除_matlab学习笔记

    Matlab学习笔记 运算: 1.     算术运算(在矩阵意义下进行) +:要求矩阵同型,对应元素相加减,如果用标量和矩阵相加减,不同型就凉凉提示错误,那就将矩阵每个元素和数字相加减 -:同上 *: ...

  9. python的基本数据结构_Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

最新文章

  1. spring-注入对象list
  2. bash shell 循环读入每一行(转)
  3. Properties作为Map集合的特有方法
  4. SAP ui5 setModel 的核心逻辑
  5. MySQL - 触发器
  6. [资源]181个Python开源项目分享!
  7. IAudioEndpointVolume
  8. BZOJ2741 【FOTILE模拟赛】L 【可持久化trie + 分块】
  9. 走进统信软件,读懂国产操作系统新生态建设
  10. Java核心类库——内部类那点事儿
  11. Flask详解(下篇)
  12. Jmeter性能测试实战教程系列-搭建分布式性能测试环境(五)
  13. Git可视化极简易教程 —— Git GUI使用方法
  14. moment获取几小时前_请问怎么把“多少小时前”精确到“多少小时多少分钟前”...
  15. 静态内部类实现单例_为什么用枚举类来实现单例模式越来越流行?
  16. alter system switch logfile与alter system archive log current
  17. 可测函数列的依测度收敛性
  18. 没用东西全部清掉_如何把电脑上无用的东西清理掉,在哪下载
  19. 商业直播平台都有哪些
  20. 数据抓取软件是如何抓取数据的?

热门文章

  1. Windows Server 2008操作系统安装手册
  2. 实体词典 情感词典_tidytextpy包 | 对三体进行情感分析
  3. python常用代码_Python常用算法学习(3)(原理+代码)——最全总结
  4. Colly实现豆瓣电影Top250爬取
  5. php实现注册登陆验证
  6. 【Halcon】Halcon与OpenCV介绍、比较
  7. flask 必知必会
  8. c/c++ 友元基本概念
  9. [linux]服务器apache配置vhost
  10. oc51--循环retain