机器学习---神经网络基础

简介: 机器学习---神经网络基础

基本介绍


神经网络最基本的成分是神经元模型,当输入值超过了神经元的阈值,神经元就被激活了。然后通过激活函数就可以将输出值对应为0或者1。


感知机


感知机是由两层神经元组成,输入层接收数据,输出层经过激活函数可以输出0或者1,所以感知机能实现一些基本的逻辑运算,下面来看看其中的数学原理。


感知机的数学原理


image.png


x是输入,w是权重,b是偏差(偏置项)


数学原理很简单,那开始实现一些基本的逻辑运算


  • 与运算
  • 或运算
  • 非运算
  • 异或运算


1.与运算


x1 x2 x1 AND X2
0 0 0
0 1 0
1 0 0
1 1 1


对应的不等式为:

b<0

w2+b<0

w1+b<0

w1+w2+b>=0

综上:只要权重满足w1,w2<-b,w1+w2>-b就可以实现与运算;


# 1.与运算
import numpy as np
def AND(x1,x2):
    x=np.array([x1,x2])
    w=np.array([1,1])
    b=-1.5
    y=np.sum(x*w)+b
    if(y>=0):
        return 1
    elif(y<0):
        return 0
print(AND(1,1))
print(AND(0,1))
print(AND(1,0))
print(AND(0,0))


image.png

2.或运算


x1 x2 x1 OR X2
0 0 0
0 1 1
1 0 1
1 1 1


对应的不等式为:OR

b<0

w2+b>=0

w1+b>=0

w1+w2+b>=0

综上:只要权重满足w1,w2>=-b就可以实现与运算;


def OR(x1,x2):
    x=np.array([x1,x2])
    w=np.array([1,1])
    b=-0.5
    y=np.sum(x*w)+b
    if(y>=0):
        return 1
    elif(y<0):
        return 0
print(OR(1,1))
print(OR(0,1))
print(OR(1,0))
print(OR(0,0))


image.png


3.非运算


x NOT x
0 1
1 0


对应的不等式为:

b>=0

w+b<0

综上:只要权重满足w<-b,b>=0就可以实现非运算;


def NOT(x):
    x=np.array([x])
    w=np.array([-1])
    b=0.5
    y=np.sum(x*w)+b
    if(y>=0):
        return 1
    elif(y<0):
        return 0
print(NOT(1))
print(NOT(0))
复制代码


image.png

4.异或运算


x1 x2 x1 XOR X2
0 0 0
0 1 1
1 0 1
1 1 0


对应的不等式为:

b<0

w2+b>=0

x1+b>=0

w1+w2+b<0

这个不等式无解,所以这就是单层感知机的弊端,不能进行异或运算。所以这个时候就要用多层感知机去解决这个问题了


#用多层感知机来解决这个问题
def XOR(x1,x2):
    a=NOT(x1)
    b=NOT(x2)
    X1=AND(a,x2)
    X2=AND(x1,b)
    Y=OR(X1,X2)
    print(Y)
XOR(0,0)    
XOR(1,1)
XOR(0,1)
XOR(1,0)
复制代码


image.png


通过这几个例子我们就知道了单层感知机只能解决线性可分问题,对于非线性可分问题的求解还得通过多层感知机(神经网络)。


对于神经网络的训练


需要训练多层网络,就需要更强大的学习算法---BP算法(反向传播算法) 对训练集假设神经网络的输出为y^jk=f(βj−θj)\hat{y}_{j}^{k}=f(\beta_j-\theta_j)y^jk=f(βjθj)则均方误差为:Ek=12∑j=1l(y^jk−yjk)2E_k=\frac{1}{2}\sum_{j=1}^{l}(\hat{y}_j^k-y_j^k)^2Ek=21j=1l(y^jkyjk)2BP算法还是基于梯度下降的算法,以负梯度方向进行调参,目标是将训练集上的累计误差E=1m∑k=1mEkE=\frac{1}{m}\sum_{k=1}^mE_kE=m1k=1mEk最小化。 基本的步骤就是计算输出--->计算输出层的梯度项--->计算隐层的梯度项--->然后根据更新公式更新权重和阈值,所以这叫做反向传播算法。对于权重和阈值的更新公式推导等后期深度学习专题再专门讲,这里就简单介绍一下就好


缺点


反向传播往往容易过拟合,通常用“早停”或者“正则化”的策略来防止过拟合。


最后来个实战例子


使用多层感知机对葡萄酒数据集来分析葡萄酒的优劣


import pandas as pd
wine = pd.read_csv('./wine.csv', names = ["Cultivator", "Alchol", "Malic_Acid", "Ash", "Alcalinity_of_Ash", "Magnesium", "Total_phenols", "Falvanoids", "Nonflavanoid_phenols", "Proanthocyanins", "Color_intensity", "Hue", "OD280", "Proline"])
wine.head(10)


image.png


wine.describe().transpose()

image.png

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import classification_report,confusion_matrix
X = wine.drop('Cultivator',axis=1)
y = wine['Cultivator']
X_train, X_test, y_train, y_test = train_test_split(X, y)
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
mlp = MLPClassifier(hidden_layer_sizes=(13,13,13),max_iter=500)
mlp.fit(X_train,y_train)
predictions = mlp.predict(X_test)
print(confusion_matrix(y_test,predictions))
print(classification_report(y_test,predictions))
print(len(mlp.coefs_))
print(mlp.intercepts_)


image.png

目录
相关文章
|
18天前
|
机器学习/深度学习 边缘计算 运维
机器学习在网络安全中的防护:智能化的安全屏障
机器学习在网络安全中的防护:智能化的安全屏障
51 15
|
26天前
|
人工智能 搜索推荐 决策智能
不靠更复杂的策略,仅凭和大模型训练对齐,零样本零经验单LLM调用,成为网络任务智能体新SOTA
近期研究通过调整网络智能体的观察和动作空间,使其与大型语言模型(LLM)的能力对齐,显著提升了基于LLM的网络智能体性能。AgentOccam智能体在WebArena基准上超越了先前方法,成功率提升26.6个点(+161%)。该研究强调了与LLM训练目标一致的重要性,为网络任务自动化提供了新思路,但也指出其性能受限于LLM能力及任务复杂度。论文链接:https://arxiv.org/abs/2410.13825。
55 12
|
2月前
|
机器学习/深度学习 人工智能 数据挖掘
打破传统:机器学习与神经网络获2024年诺贝尔物理学奖引发的思考
诺贝尔物理学奖首次授予机器学习与神经网络领域,标志该技术在物理学研究中的重要地位。本文探讨了这一决定对物理学研究的深远影响,包括数据分析、理论物理突破及未来科研方向的启示,同时分析了其对学术跨界合作与全球科研产业的影响。
60 4
|
2月前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
201 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
2月前
|
机器学习/深度学习 人工智能 安全
人工智能与机器学习在网络安全中的应用
人工智能与机器学习在网络安全中的应用
94 0
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
71 17
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
59 10
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
66 10