神经网络的基本单位:神经元。每个神经元里面都含有一个激活函数,这个函数常用S型[0,1]或者高级点的S型[-1,1]。
给定输入,得到输出的过程被称为前馈(feedforward)。
一个神经元的简单代码(用Numpy第三方库)
- 归一化处理
- 首选归一化处理目的是让一些不同量纲的数据处理为无量纲的数据,也就是让他们在同一个范围内。百度解释:归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
- 归一化处理的方法,主要有两种,一种是线性函数的方法,也就最大最小值法,是(0,1)标准化,将数据通过找到最大最小值之后利用公式将数据转换为在0到1之间的数据,但是这个方法的缺点就是对异常数据十分敏感
- 第二种方法就是零均值归一化,这个方法是通过求出这一组数据的均值和标准差,之后通过公式对数据进行归一化处理,这种方法也叫Z-score标准化
- 什么算法需要归一化?线性回归、逻辑回归、支持向量机、神经网络都需要对数据进行归一化处理,以保证有量纲数据转为无量纲数据, 以保证数据在同一范围内
- 无需做归一化处理的有决策树
- 参考链接
- https://blog.csdn.net/weixin_42575020/article/details/82944291
- https://www.cnblogs.com/chaosimple/p/3227271.html
- 激活函数
- https://finance.sina.com.cn/tech/2021-02-24/doc-ikftssap8455930.shtml#:~:text=%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0%EF%BC%88Activation%20Function%EF%BC%89
- https://zhuanlan.zhihu.com/p/36763712
import numpy as np
def sigmoid(x):
# Our activation function: f(x) = 1 / (1 + e^(-x))
return 1 / (1 + np.exp(-x))
class Neuron:
def __init__(self, weights, bias):
self.weights = weights
self.bias = bias
def feedforward(self, inputs):
# Weight inputs, add bias, then use the activation function
total = np.dot(self.weights, inputs) + self.bias
return sigmoid(total)
weights = np.array([0, 1]) # w1 = 0, w2 = 1
bias = 4 # b = 4
n = Neuron(weights, bias)
x = np.array([2, 3]) # x1 = 2, x2 = 3
print(n.feedforward(x)) # 0.9990889488055994
参考链接:https://blog.csdn.net/zhuangjinhua/article/details/103532050
Comments NOTHING