摘要: 此处的神经网络层都利用了计算图的正向传播和反向传播的概念,关于详细内容参考[1][2],此处只列出Python的代码实现 ReLU层 class Relu: def __init__(self): self.mask = None def forward(self, x): self.mask = 阅读全文
posted @ 2021-03-29 08:43 剑伟 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 神经网络可以用在分类问题和回归问题上,不过需要根据情况改变输出层的激活函数。一般而言,回归问题用恒等函数,分类问题用softmax函数。 恒等函数代码: def identity_function(x): return x 简单softmax函数: def softmax(x): return np 阅读全文
posted @ 2021-03-26 14:55 剑伟 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 神经网络的学习的目的是找到使用使损失函数的值尽可能小的参数。这是寻找最优参数的问题,解决这个问题的过程称为最优化(optimization)。遗憾的是,神经网络的最优化问题非常难。这是因为参数空间非常复杂,无法轻易找到最优解(无法使用那种通过解数学式一下子就求得最小值的方法)。而且,在深度神经网络中 阅读全文
posted @ 2021-03-26 14:02 剑伟 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 全局代码: def init_network(): network = {} network['W1'] = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]]) network['b1'] = np.array([0.1, 0.2, 0.3]) network[ 阅读全文
posted @ 2021-03-26 13:58 剑伟 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 神经网络的学习中所用的指标称为损失函数(loss function)这个损失函数可以使用任意函数,但一般使用均方误差和交叉熵误差等。 损失函数是表示神经网络性能的“恶劣程度”的指标,即当前神经网络对监督数据在多大程度上不拟合,在多大程度上不一致。 均方误差 公式:E=1/2Σ(yk-tk)2 这里, 阅读全文
posted @ 2021-03-26 13:44 剑伟 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 在感知机中,神经元节点只有x和y 例如: (1)当b+w1x1+w2x2<=0, y=0 (2)当b+w1x1+w2x2>0, y=1 其中,x1x2都是感知机输入层,w1w2则是输入层到输出层信号的权重,再经过参数b的偏置后,根据是否大于0输出二元信号y=0或y=1 在这里,假如设定a=b+w1x 阅读全文
posted @ 2021-03-26 13:40 剑伟 阅读(179) 评论(0) 推荐(0) 编辑
摘要: np.zeros类似于C中的calloc,预定义后随着使用而动态分配内存 而np.zeros_like类似于C中的malloc+memset,在预定义时就直接初始化内存,之后直接使用内存,系统不再重新分配 以下测试结果取自https://stackoverflow.com/questions/274 阅读全文
posted @ 2021-03-26 12:25 剑伟 阅读(1451) 评论(0) 推荐(0) 编辑
摘要: 不管是感知机还是神经网络,都是由神经元和信号组成的多层网络,不同的是,感知机中神经元之间流动的是0或1的二元信号,而神经网络中流动的是连续的实数值信号。 感知机和神经网络之间的桥梁是激活函数,朴素感知机的激活函数是阶跃函数(阈值),而神经网络的激活函数则有很多种,最常用的是sigmoid函数:y=1 阅读全文
posted @ 2021-03-17 17:13 剑伟 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 感知机: 感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值。 感知机将权重和偏置设定为参数 使用感知机可以表示与门和或门等逻辑电路 def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.7 tm 阅读全文
posted @ 2021-03-17 16:57 剑伟 阅读(111) 评论(0) 推荐(0) 编辑
摘要: wget https://bootstrap.pypa.io/pip/2.7/get-pip.py sudo python2 get-pip.py 阅读全文
posted @ 2021-03-08 16:35 剑伟 阅读(297) 评论(0) 推荐(0) 编辑