no.1-10/14/2018

一:预定目标

  1. 系统学习git

  2. 熟悉tensorflow

  3. 深入了解神经网络,实现一些MLP、CNN神经网络,并看懂原理。

  4. 理解GAN原理,用GAN生成图片,用GAN调节神经元控制图片亮度。

二:目前进度

Project 1. 通过经典手写数字识别学习MLP神经网络

a) 比较经典的神经网络,数据集是MUIST Database手写数字图像,输入时28*28的手写数字灰度图像。输入是784个神经元,中间为两个隐含层(每层16个神经元),和最后表达0-9数字的10个神经元输出层。

image.png

b) 重新认识了神经网络的数学原理,比如神经网络参数的训练推导,归一化函数(sigmoid函数和ReLU函数)梯度下降公式推导和反向传播算法等。

教程谈到一个较快求梯度下降的图形的trick。如果循环全部数据集才修正一次参数,速度会很慢(最快下降,但是速度慢),而只循环数据集的子集之后马上修正参数,参数修正速率会快很多(快速寻找相对下降的方向)。

image.png
image.png

c) 在代码上,这个有可能自己手写算法实现,之后打算通过数学公式推导重写MLP神经网络。

image.png

d) 来源地址:

https://youtu.be/IHZwWFHWa-w
https://github.com/mnielsen/neural-networks-and-deep-learning

Project 2. 通过二次元头像生成学习GAN神经网络(李宏毅GAN2018)

1.理解Generator和Discriminator概念和对抗过程
image.png
2.生成器的模型和作用
image.png
3. 判别器的模型和作用
image.png
4. 生成对抗过程Algorithm
  1. Fix generator G and update Discriminator D 用数据集和随机向量生成的图片训练判别器D识别图像真实程度

  2. Fix Discriminator D and update generator G 训练生成器G生成能“骗过”判别器D的图像

  3. 重复1,2过程,经典的GAN具体算法:经典的GAN神经网络除了对抗的思想,生成器和判别器的训练和一般的神经网络没有很大的区别。

image.png
  1. 教程给出了一个例子。若确定GAN的第一个和最后一个向量,并在两者中间进行调整时,generator生成的图像会出现渐变的效果。案例的应用是控制神经元的某些参数可以达到生成相似正脸的图像,这个案例在重加光上有很好的类比作用。若用的数据集是很多不同加光的图像,就可能可以找到控制重加光的神经元。
image.png
  1. 基本理解GAN神经网络的基本概念,下一步准备尝试实现经典GAN代码。

Project 3. 深度学习理解在人脸照片重加光上的应用

  1. 题目理解:训练GAN神经网络,找到其中影响照片加光方向的神经元,调节某些神经元权重和偏置以控制生成照片的加光情况。

  2. 大体思路:

    a) 用有加光方向影响的人物图像作为训练集,训练GAN神经网络。这样生成器生成的人物图像就会有不同加光影响。

    b) 很直接的想法是寻找权重较大的神经元进行控制,进行试错。更多的方法还需要进一步学习。

    c) 尝试多种GAN神经网络。如老师之前发的新闻中的BigGAN

三:总结和计划

  1. 总结:总体而言,通过经典案例和教程比较泛的对所有需要的知识进行了复习和学习。下一步计划对原理和代码进行学习研究。

  2. 计划:

  • 实现对手写数字的代码实现。从数学推导掌握神经网络原理。

  • 继续对GAN的学习。掌握原始GAN的思想和实现,接触其他GAN变形的原理和实现方法。

黄俊嘉

2018年10月14日

你可能感兴趣的:(no.1-10/14/2018)