最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。下面用一个运行的例子来讲一下最近热门的机器学习里面的基础算法神经元网络算法。人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
例子一共40行代码,在文章最后有下载方法。运行环境如下:
操作系统:win10 64位
anaconda:Anaconda3-4.4.0-Windows-x86_64
python:3.64
tensorflow:为anaconda管理安装,看anaconda是1.1版本。
神经元网络算法实际是仿生人体神经元。人体神经元,之间互相链接,传递信息,做出决策。人工智能中最热门的机器学习的神经元网络算法就是仿生人的大脑的。人脑中的神经元就有3个基本功能。 1.接受信号。 2.决定是不是让信号通过。 3.发出信号给别的神经元。 人脑的信号是生物电信号,而计算机的则是0-1之间的小数数字信号。
神经元数学模型
从基础知识上了解了神经元,但是实际工作中,为什么叫机器学习呢?因为大部分神经元网络,在最初期是没有输入权重和对应的偏置(就像一个线段在图像中的角度和位移,角度即为权重,上下左右位移就为偏置)。我们有的往往是输入值和对应输出值,这时候我们就需要机器来学习这些数据,得到对应的权重wi和偏置b。这个程序就是一个最简单的训练程序,通过梯度下降算法求得wi和偏置b,再通过bp(back propagation)来优化。
主程序
程序主题部分,通过001,111,101,011输入,对应输出0,1,1,0进行训练。最后调用模型输入1,0,0,算出输出结果。
这是运行结果,训练3000次后,输入1,0,0,输出结果为0.999近似等于1.
需要程序的,可以在这里下载
http://www.angtk.com/archives/36
下面小编在给大家分享python 用json形式从豆瓣抓取电影的排行,电影名称与分数的项目,以后看电影多一种方法啦!在分享
之前小编还是要推荐自己建立的裙Python学习:五七七九零一二九四 这里有推荐的学习路线,
基础视频学习资料和电子教程文档和Python安装工具及Python技术学习交流和分享。下面是项目代码实现:
from urllib.request import urlopen
import json
### 用json形式从豆瓣抓取电影的排行,通过审查元素找到看起来是json格式的链接
def get20Movie(url):
html = urlopen(url)
htmlJsonString = html.read()
jsonObj = json.loads(htmlJsonString.decode()) # decode()很关键
movieNameAndScores = []
for each in jsonObj.get('subjects'):
movieNameAndScores.append(each.get('title')+each.get('rate'))
# print(each.get('title')+each.get('rate'))
return movieNameAndScores
j = 0
while 1:
movieNameAndScores = get20Movie('https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start='+str(j))
for each in movieNameAndScores:
print(each)
j += 20
如遇到学习Python编程不懂的地方,欢迎跟小编交流学习!
领取专属 10元无门槛券
私享最新 技术干货