-
常用的激励函数
sigmoid
tanh
ReLU
查看全部 -
单个细胞结构
查看全部 -
主要功能--分类查看全部
-
神经网络的感觉
从这门课帮助我理解了神经网络
查看全部 -
对bp神经网络的多轮单个样本更新权重和阈值的迭代代码实现,参考吴恩达机器学习 def loss(self,x,y,lamba=0.01): n_train,n_features=x.shape #前向传播 mulIToH=sigmoid(np.dot(x,self.weightIToH_)+self.b1)#隐藏层输出结果n_train*self.wHN_ mulHToO=sigmoid(np.dot(mulIToH,self.weightHToO_)+self.b2)#输出层输出结果n_train*self.oN_ loss=-np.sum(y*np.log(mulHToO)+(1-y)*np.log(1-mulHToO))/n_train loss+=0.5*lamba*(np.sum(self.weightIToH_*self.weightIToH_)+np.sum(self.weightHToO_*self.weightHToO_))/n_train #backward后向传播过程 errorOut=mulHToO-y#n_train*self.oN_ dWeightHToO=np.dot(mulIToH.T,errorOut)+lamba*self.weightHToO_ db2=np.sum(errorOut,axis=0) for temp in range(mulIToH.shape[1]): mulIToH.T[temp]=derivativeOfSigmoid(mulIToH.T[temp]) errorHidden=np.dot(errorOut,self.weightHToO_.T)*mulIToH.T dWeightIToH=np.dot(x.T,errorHidden)+lamba*self.weightIToH_ db1=np.sum(errorHidden,axis=0) dWeightHToO/=n_train dWeightIToH/=n_train db2/=n_train db1/=n_train return loss,dWeightIToH,dWeightHToO,db1,db2
查看全部 -
讲解这个训练过程,以及网络向量化(正向传播)、网络梯度下降(网络反向传播),是为了我们在使用框架时(使用现成的神经网络算法时),明白神经网络的执行机制。
因此,老师没有讲解例子,自己来编写这些代码。
可能后续会有课程,使用这些框架。
比如:老师的另一门免费课:
使用python实现线性回归?
查看全部 -
实际上,我在写程序的时候,没有使用损失函数,LOST的计算,直接使用
y' - y (y'是网络模拟出输出,y为原始数据)来判断网络误差。
查看全部 -
为了反向调整w、b的值,修改正向传播的计算公式:
查看全部 -
z = wT*x+b
输入几个x,w的第一纬就是几;比如这里有3个x,则w就是3行;
该层有几个细胞,w的第二维就是几;比如这里隐含层有4个细胞,则w就是4列。
然后,w转置后,与x相乘;
该层有几个细胞,b的第一维就是几;这里b是4行1列。
输出层,也是,一个细胞,四个输入;则w是4行1列,b是1行1列。
查看全部 -
逻辑回归梯度下降法
为了找到局部最小或者全局最小值,对损失函数进行求导。
求损失函数导数
w、b同步更新
最终找到最小值
查看全部 -
单次训练损失
查看全部 -
三种激励函数:
1,Sigmoid函数,当x趋向于负无穷时,函数趋向于0;当x趋向于正无穷时,函数趋向于1.优点是:在整个区间上是可导的。
缺点是:不是以原点对称的,对称点是(0,0.5)。使用其做完函数计算后,
经常需要再做一步数据中心化。
2,tanh函数
将Sigmoid函数平移后,产生以(0,0)点中心对称的函数tanh函数。
两个函数的缺点:
当数据极大、或者极小时,函数变化比较平缓。从图中也能看出来。
函数变化比较小,神经网络的效能受到影响。如果网络比较大,
则训练周期就会比较长。
3,ReLU函数,近几年出现的线性函数。效率比较高。很多机器学习的框架,默认使用该函数。
查看全部 -
课程的安排
查看全部 -
神经网络主要功能是分类识别。分类识别主要分为①图像(最终可能实现自动驾驶);②语音(最终就是导致语音助手);③文本(最终可能就是导致新闻推送服务)。
查看全部 -
神经网络兴起的原因:①环境:2进制创新;②能力:软硬件;③需求:人的性价比。
查看全部
举报