本项目的CSDN博客链接:https://blog.csdn.net/weixin_41578567/article/details/111482022

1. 概览

本项目主要用于神经网络的学习,通过基于numpy的实现,了解神经网络底层前向传播、反向传播以及各类优化器的原理。

该项目目前已实现的功能:

  • 自定义多层的全连接层,并可定义多种激活函数
    • sigmoid
    • tanh
    • relu
    • softmax
  • 定义dropout
  • 支持多分类任务
  • 支持多种优化器
    • SGD
    • BSGD
    • SGD with Momentum
    • AdaGrad
    • AdaDelta
    • RMSProp
    • Adam
    • AdaMax

2. Todo list

  • 加入validation

  • 支持多分类任务

  • 加入卷积层(CNN)

  • 加入池化层

  • 加入循环网络(RNN)

3. 运行

直接执行main_binary_classification.py,即可执行二分类问题的训练和预测

执行main_multi_classification.py,即可执行多分类问题的训练和预测

python main_binary_classification.py

"""
Epoch 1/100 - loss: 0.19804074649934453 - acc: 0.7462311557788944
Epoch 10/100 - loss: 0.05641219571461576 - acc: 0.9447236180904522
Epoch 20/100 - loss: 0.03296407980222495 - acc: 0.9698492462311558
Epoch 30/100 - loss: 0.024833182907967224 - acc: 0.9798994974874372
Epoch 40/100 - loss: 0.02147093826055232 - acc: 0.9824120603015075
Epoch 50/100 - loss: 0.018468433700412783 - acc: 0.9849246231155779
Epoch 60/100 - loss: 0.017207182621404478 - acc: 0.9849246231155779
Epoch 70/100 - loss: 0.016608808691509016 - acc: 0.9824120603015075
Epoch 80/100 - loss: 0.014850895654103682 - acc: 0.9849246231155779
Epoch 90/100 - loss: 0.014590506876720767 - acc: 0.9824120603015075
Epoch 100/100 - loss: 0.013794675383962845 - acc: 0.9874371859296482
"""

GitHub

https://github.com/Irvinfaith/numpy_neural_network