1.神经网络(线性,Rosenblatt)

大纲

1. look --- 人工神经网络的理论,计算模型

2. write --- 少量数据栗子

3. code --- python


人工神经网络的理论

历史故事(可以不看)

1943年,美国McCulloch与Pitts从信息处理的角度,合作提出了第一个神经计算模型:二元神经元模型,简称MP模型。1949年,心理学家D.O.Hebb对大脑神经细胞、学习与条件反射作了大胆地假设,提出了著名的Hebb学习规则,即由神经元之间结合强度的改变来实现神经学习的方法。 50年代末期,Rosenblatt提出感知机(Perceptron),首先从工程角度,研究了用于信息处理的神经网络模型。

理论(百度抄的,看了也没啥卵用)

人工神经网络从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

模拟一个简单的线性神经网络

没错,就是呢个大家用烂的感知学习算法:Rosenblatt
用一个简单的二分类问题作为栗子

基于神经元结构模型

算法模型
  • 模型图解释:Input 输入值(x)和权值(w),权值初始化为0
输入的数据和初始化权值.png
  • 模型图解释:Net Input Function 网络输入,是向量乘积的形式
Net Input Function
  • 模型图解释:Activation Function 激活函数
Activation Function
  • 模型图解释:Weight update 权值更新策略
Weight update

栗子出场~

数据的模样

X
[ 4.8 1.4] , [ 5.1 1.6] , [ 4.6 1.4] , [ 5.3 1.5]
[ 5.0 1.4] , [ 7.0 4.7] , [ 6.4 4.5] , [ 6.9 4.9]
[ 5.5 4.0] , [ 6.5 4.6]
y
[-1 -1 -1 -1 -1 1 1 1 1 1]

初始化权值

w = [0,0,0]

学习率设置为0.1

第一次计算就遇到分类错误情况
update = 学习率 * (真实分类 - 预测分类)
    = 0.1 * (-1 - 1)
    = -0.2

w_new = w_old + update • X
    = [0,0,0] + -0.2 • [1 , 4.8 , 1.4]
    = [0,0,0] + [-0.2 , -0.96 , -0.28]
    = [-0.2 , -0.96 , -0.28]

第一次循环过程

第一轮计算过后,被错误分类的点有2个.构分类超平面的公式为


超平面公式

带入第一轮计算的权值得到以下超平面


第一轮迭代得到的超平面
10轮过后...

权值向量w = [-0.4 -0.66 1.38]

Paste_Image.png

观察每次迭代以后对应的错误分类数量,发现第5次迭代以后,算法收敛


Paste_Image.png

Code Time

不是手算的就不呢么寒酸只用十个数据点了~

线性感知器社交网络

# encoding:utf-8
__author__ = 'Matter'

import numpy as np
class Perceptron(object):

    # --------  参数  --------#
    # 参数1   eta:float   学习率
    # 参数2   n_iter:int  循环次数
    # --------  属性  --------#
    # 属性1   w_:1d_array     拟合后权值
    # 属性2   errors_:list    每次迭代的错误分类

    # 初始化
    def __init__(self,eta=0.01,n_iter=10):
        self.eta = eta
        self.n_iter = n_iter

    # 训练模型
    def fit(self,X,y):
        self.w_ = np.zeros(1+X.shape[1])
        self.errors_ = []

        for _ in range(self.n_iter):
            errors = 0
            for xi,target in zip(X,y):
                # 计算误差,并更新权值
                update = self.eta * (target - self.predict(xi))
                self.w_[1:] += update * xi
                self.w_[0] += update
                errors += int(update != 0.0) # 分类错误的个数
            self.errors_.append(errors) # 记录每次权值修正以后的错误分类个数
        return self
    # 输入和权值的点积,即公式的z函数,图中的net_input
    def net_input(self,X):
        return np.dot(X,self.w_[1:]) + self.w_[0]

    # 激活函数
    def predict(self,X):
        return np.where(self.net_input(X)>=0.0,1,-1)

调用进行测试

# encoding:utf-8
__author__ = 'Matter'

import pandas as pd
import numpy as np
from Perceptron import Perceptron

# https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
df = pd.read_csv("iris.data",header=None)

y = df.iloc[0:100,4].values
y = np.where(y=='Iris-setosa',-1,1)
X= df.iloc[0:100,[0,2]].values

ppn = Perceptron(eta=0.1,n_iter=10)
ppn.fit(X,y)
print(ppn.w_)
# ppn.w_ : [-0.4  -0.68  1.82]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容