• Python 实现深度学习


    前言

    写在最前, 我把代码和整理的文档放在github上了

    https://github.com/Leezhen2014/python_deep_learning

    最近由于疫情被困在家,于是准备每天看点专业知识,准备写成博客,不定期发布。

    博客大概会写5~7篇,主要是“解剖”一些深度学习的底层技术。关于深度学习,计算机专业的人多少都会了解,知道ConvPool的过程,也看过论文,做过实验或是解决方案。在写的各种卷积网路 时候,有没有问问自己:这些网络到底是怎么“运作”起来的?如果自己要实现一个具备基本功能的神经网络应该怎么去实现?

    知道事物的表面现象,不知事物的本质及其产生的原因是一件很可悲的事情,正如鲁迅所说:What I cannot create, I do not understand. 只有亲自实践去创造一个东西,才算真正弄懂一个问题。

    本着“知其然,知其所以然”的目的,会尽可能的用Python库和基本的数学知识,创建经典的深度学习网络。

    每篇的计划如下:

    第一篇介绍numpy库和matplotlib库、读写二进制的方法、pkl等。这些知识会在后面用到,在本篇的最后会以mnist数据集为例,创建处理手写体图片的函数,供后使用。

    第二篇介绍感知机。用感知机实现逻辑门、用多层感知机实现复杂逻辑门。

    第三篇神经网络的设计与实现。分为上下两部分:

    3.1篇增加神经网络的forward。实现激活函数、全连接层的计算、输出层。最后用mnist数据集测试forwarld是否正确;

    3.2篇增加神经网络的backward。实现损失函数、梯度、学习算法。最后用mnist数据集测试神经网络的训练。

    第四篇引入计算图的思想,用计算图的方式实现乘法层、加法层和激活层。最后用mnist数据集测试这些简单层。

    第四篇添加optimization模块。设计实现SGD,momentum,学习率的衰减,adam。 最后用mnist数据集作对比。

    第五篇增加一些处理过拟合的方法。实现droupout,权值衰减,。用mnist数据集测试效果

    第六篇增加batch-normalization功能。用mnist数据集做测试效果;

    第七篇增加conv和pool功能。实现一个lenet-5

    前面七篇的代码和博客已经写完了,经过整理以后会陆续发布。就这样吧,加油!

  • 相关阅读:
    Selct 大全
    Web API
    其他
    ADO.NET Entity Framework
    ORACLE SQL前端补0的三种方式。
    linux常用命令
    oracle 创建修改 job
    oracle 如何恢复误删的表记录数据
    myeclipse上SVN代码合并详细步骤图解
    SVN创建资源与分支详解
  • 原文地址:https://www.cnblogs.com/greentomlee/p/12314064.html
Copyright © 2020-2023  润新知