竞争学习算法
目录
1 竞争学习算法原理
- 竞争学习的关键就在于网络中存在抑制层。
- 输出神经元之间的竞争
- 网络在神经元之间可能包括反馈连接
- 每个神经元都倾向于抑制跟他同一层的神经元。相比之下,网络中的前馈的突触连接都是兴奋的。
2 代码实现
三个步骤:
{1}向量归一化
{2}寻找优胜神经元:当网络得到一个输入模式时,竞争层所有的神经元对应的权值向量Wj(i=1,2,3…m)均与X进行比较,将与X最为相似的Wi判定为获胜神经元。测量相似性的方法是对Wi与X计算欧式距离(或夹角余弦)。
{3}网络输出与权值调整
以下:
一、竞争网络
import numpy as np
def sigmoid(x,derivative=False):#激活函数
return 1/(1+np.exp(-x))
def normalization(M):
"""
对行向量进行归一化
:param M:行向量:【dim=len(M)】
:return: 归一化后的行向量M
"""
M=M/np.sqrt(np.dot(M,M.T)) # np.dot()是向量内积
return M
def normalization_all(N):
"""
对矩阵进行归一化
:param N: 矩阵:【m,n】
:return: 归一化后的矩阵M_all:【m,n】
"""
M_all=[]
<