参考彭亮老师的视频教程:转载请注明出处及彭亮老师原创
视频教程: http://pan.baidu.com/s/1kVNe5EJ

1. 关于非线性转化方程(non-linear transformation function)

sigmoid函数(S 曲线)用来作为activation function:
1.1 双曲函数(tanh)
1.2  逻辑函数(logistic function)
2. 实现一个简单的神经网络算法
import numpy as np
def tanh(x):  
return np.tanh(x)
def tanh_deriv(x):  
return 1.0 - np.tanh(x)*np.tanh(x)
def logistic(x):  
return 1/(1 + np.exp(-x))
def logistic_derivative(x):  
return logistic(x)*(1-logistic(x))
class NeuralNetwork:   
def __init__(self, layers, activation='tanh'):  
"""  
:param layers: A list containing the number of units in each layer.
Should be at least two values  
:param activation: The activation function to be used. Can be
"logistic" or "tanh"  
"""  
if activation == 'logistic':  
self.activation = logistic  
self.activation_deriv = logistic_derivative  
elif activation == 'tanh':  
self.activation = tanh  
self.activation_deriv = tanh_deriv
self.weights = []  
for i in range(1, len(layers) - 1):  
self.weights.append((2*np.random.random((layers[i - 1] + 1, layers[i] + 1))-1)*0.25)  
self.weights.append((2*np.random.random((layers[i] + 1, layers[i + 1]))-1)*0.25)
def fit(self, X, y, learning_rate=0.2, epochs=10000):         
X = np.atleast_2d(X)         
temp = np.ones([X.shape[0], X.shape[1]+1])         
temp[:, 0:-1] = X  # adding the bias unit to the input layer         
X = temp         
y = np.array(y)
for k in range(epochs):  
i = np.random.randint(X.shape[0])  
a = [X[i]]
for l in range(len(self.weights)):  #going forward network, for each layer
a.append(self.activation(np.dot(a[l], self.weights[l])))  #Computer the node value for each layer (O_i) using activation function
error = y[i] - a[-1]  #Computer the error at the top layer
deltas = [error * self.activation_deriv(a[-1])] #For output layer, Err calculation (delta is updated error)
#Staring backprobagation
for l in range(len(a) - 2, 0, -1): # we need to begin at the second to last layer 
#Compute the updated error (i,e, deltas) for each node going from top layer to input layer 
deltas.append(deltas[-1].dot(self.weights[l].T)*self.activation_deriv(a[l]))  
deltas.reverse()  
for i in range(len(self.weights)):  
layer = np.atleast_2d(a[i])  
delta = np.atleast_2d(deltas[i])  
self.weights[i] += learning_rate * layer.T.dot(delta)
def predict(self, x):         
x = np.array(x)         
temp = np.ones(x.shape[0]+1)         
temp[0:-1] = x         
a = temp         
for l in range(0, len(self.weights)):             
a = self.activation(np.dot(a, self.weights[l]))         
return a

6.2神经网络算法实现--python机器学习相关推荐

  1. python深度神经网络算法_02.深度神经网络算法之Python基础与数据分析

    资源内容: 02.深度神经网络算法之Python基础与数据分析|____2016最新python基础篇视频教程22课|____Python学习手册(第4版).pdf|____Python程序入门与进阶 ...

  2. python神经网络算法pdf_Python与机器学习实战 决策树、集成学习、支持向量机与神经网络算法详解及编程实现.pdf...

    作 者 :何宇健 出版发行 : 北京:电子工业出版社 , 2017.06 ISBN号 :978-7-121-31720-0 页 数 : 315 原书定价 : 69.00 主题词 : 软件工具-程序设计 ...

  3. 7天人工智能训练营,带你玩转机器学习与神经网络算法!(含6大实战练习,限200人)...

    在这个人工智能技术进入落地应用的爆发时代,作为有着技术追求的IT人,好像不懂点人工智能,就像与这个世界脱节了一样. 说到人工智能,想必大家都听说过一个词叫"神经网络",神经网络作为 ...

  4. 分享100本Python机器学习、深度学习电子书

    此套电子书收集于网络,如有侵权请联系删除!!! 此套电子书仅用于个人学习,请勿用于商业获利,造成后果自负!!! 这套电子书包括:机器学习.深度学习.数据科学入门.神经网络等 获取资源地址: https ...

  5. python神经网络算法pdf_高清图解:神经网络、机器学习、数据科学一网打尽|附PDF...

    原标题:高清图解:神经网络.机器学习.数据科学一网打尽|附PDF [导读]完全图解人工智能.NLP.机器学习.深度学习.大数据!这份备忘单涵盖了上述领域几乎全部的知识点,并使用信息图.脑图等多种可视化 ...

  6. 机器学习算法与Python实践之(二)支持向量机

    http://blog.csdn.net/zouxy09/article/details/17291543 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己 ...

  7. 机器学习算法与Python实践之(二)支持向量机(SVM)初级

    机器学习算法与Python实践之(二)支持向量机(SVM)初级 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...

  8. 神经网络变学习率算法代码_机器学习算法之神经网络

    点击蓝字关注我哦 人工神经网络(Artificial Neural Networks,ANN)系统是 20 世纪 40 年代后出现的.它是由众多的神经元可调的连接权值连接而成,具有大规模并行处理.分布 ...

  9. python机器学习算法(赵志勇)学习笔记(基础部分)

    文章目录 机器学习基础 机器学习概念 机器学习算法的分类 监督学习 监督学习重点 监督学习的流程 监督学习算法 分类问题(Classification) 回归问题(Regression) 无监督学习 ...

最新文章

  1. 练习markdown语法
  2. CentOS7Jenkins安装
  3. Spring程序开发
  4. java基础教程哪个好,面试必会
  5. 1062. Talent and Virtue (25)-PAT甲级真题
  6. java 远程连接_java实现连接远程服务器并执行命令的基本原理
  7. 路由器常见问题及解决办法
  8. Centos7配置 SNMP服务(防火墙配置注意)
  9. 【android】集成腾讯的播放器SDK
  10. webpack5之webpack-dev-server(实时重新加载(live reloading)
  11. wing ftp linux 怎么用,Wing FTP Server使用方法(操作步骤)
  12. 从零实现HarmonyOS(鸿蒙)运动手表两个游戏的合并
  13. opencv漫水填充算法floodfill
  14. GDT(全局描述表)
  15. C++ - PAT- L1-030. 一帮一(天梯赛决赛题目)
  16. 与mysql类似的数据库_目前主流的数据库是哪种?
  17. 拥有良好的社交和友谊会使肠道微生物群更健康
  18. Can‘t resolve ‘redux‘ in
  19. python 遍历列表、每次取两个参数_Python列表遍历知多少
  20. 通过bat批处理命令进行adb push批量拉取文件

热门文章

  1. Java堆内内存和堆外内存
  2. 京东2020双十一脚本(基于Autojs)
  3. 管理者如何面对不确定性,环境变化的这几个重要特征你知道么
  4. 怎样进服务器手机版视频文件,手机播放云服务器中的视频文件
  5. 山东春秀高考计算机本科录取率,山东2020年高考录取人数及录取率
  6. C++挖掘程序本质(第二章C++面向对象-中)李明杰-M了个J 配套教材
  7. OpenCV_Canny图像边缘检测
  8. Happy Base
  9. 2021年全国大学生电子设计竞赛——信号失真度测量装置(A题)——设计过程分享(2)
  10. 在vue中使用antV-G2展示基础饼状图