机器学习-实现简单神经网络

课程地址:https://www.imooc.com/learn/813

一、机器学习的基本概念 

二、感知器分类算法

1.分类算法的总体描述

分类行为

向量的点积

扫描二维码关注公众号,回复: 170636 查看本文章

矩阵的转置

2.感知器分类算法

增加w0,x0变量。当z大于0,输出1,当z值小于0,输出-1

x(j)输入的相关电信号

只有感知器得到错误分类,才需要调整▽w(j)的权重

学习率根据不同情况调整

更新第一个量

同理,更新第二个量

更新第三个量

在输入新的分类输入,更新权重

阈值初始化为0,电信号分量固定值为1,被省略

告知其算法必须满足第一种情况(图一),即线性分割。后两种情况不适合感知器算法

目标是:找到中间分开虚线

步骤:

(1)初始化向量w

(2)把x样本输入到感知器中

(3)点积,分量相乘结果求和

(4)结果输入到步调函数中,激活函数,得到结果1或者-1。

(5)如果正确则输出电信号,得到最终结果;如果错误,就把错误结果根据前面所描述得步骤返回来,对权重向量进行跟新,再把其他原有的训练样本或者是新的徐连样本再重新输入到感知器中。

三、感知器分类算法的Python实现

1.实现感知器对象

y中1对应X的【1,2,3】样本,y中的-1对应X的【4,5,6】样本

训练过程完成

电信号输入的点积,判断预测值是否大于0,返回判断分类,1,-1

神经元算法实现完毕

2.数据解析和可视化


要加载的数据,通过逗号隔开

读取数据,显示前十行

把第四列赋值给y

把字符串改成数字

把第0列和第2列抽取出来

数据可视化

数据可以线性分割

2.神经网络对数据实现分类

根据不同颜色填充准备好的数据

利用meshgrid,构造2个维矩阵

把第一个元素拿出来,重复185次,成为第一行。可以重复255行矩阵

ravel:二维数组还原成扩展前的单维向量

四、适应性线性神经元

1.适应性线性神经元基本原理

把求和结果直接当成最终结果,比较

切线斜率正,减少神经元w分量的值

切线斜率负,增加神经元w分量的值

取得w最小值

2.适应性神经元代码实现 

猜你喜欢

转载自my.oschina.net/u/3018050/blog/1808574