其他
快速学习一个算法,神经网络
大家好,我是小寒。
今天给大家介绍一个超强的算法模型,神经网络。
神经网络的组成部分
神经元
层
输入层:是网络接收外部数据的第一层,每个输入代表不同的特征。
隐藏层:网络中一个或多个中间层,这里进行数据的转换和特征的抽象。
输出层:网络的最后一层,负责产生输出,如分类的标签或者回归问题的数值预测。
权重和偏置
权重:连接网络中神经元的参数,决定了输入信号在网络中传递的强度和影响。
偏置:一种特殊的权重,与每层的每个神经元关联,可以调整激活函数的输入,从而控制神经元的激活方式。
激活函数
激活函数为网络引入非线性,使其能够捕捉复杂的模式。
常见的激活函数包括 Sigmoid、Tanh、ReLU、Leaky ReLU和SELU。
优化器(Optimizer)
损失函数(Loss Function)
建立你的第一个神经网络
我们将使用 sklearn.datasets 的 make_classification 函数来生成合成的二元分类数据集。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
import tensorflow as tf
from tensorflow.keras import layers, models
X, y = make_classification(n_samples=1000, n_features=2, n_classes=2, n_clusters_per_class=1, n_redundant=0, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = models.Sequential()
model.add(layers.Dense(units=1, activation='sigmoid', input_shape=(2,)))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
history = model.fit(X_train, y_train, epochs=20, batch_size=32, validation_split=0.2)
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print(f'Test Accuracy: {test_accuracy * 100:.2f}%')
最后
—
「进群方式:加我微信,备注 “python”」
往期回顾
Fashion-MNIST 服装图片分类-Pytorch实现