一:预定目标
-
系统学习git
-
熟悉tensorflow
-
深入了解神经网络,实现一些MLP、CNN神经网络,并看懂原理。
-
理解GAN原理,用GAN生成图片,用GAN调节神经元控制图片亮度。
二:目前进度
Project 1. 通过经典手写数字识别学习MLP神经网络
a) 比较经典的神经网络,数据集是MUIST Database手写数字图像,输入时28*28的手写数字灰度图像。输入是784个神经元,中间为两个隐含层(每层16个神经元),和最后表达0-9数字的10个神经元输出层。

b) 重新认识了神经网络的数学原理,比如神经网络参数的训练推导,归一化函数(sigmoid函数和ReLU函数)梯度下降公式推导和反向传播算法等。
教程谈到一个较快求梯度下降的图形的trick。如果循环全部数据集才修正一次参数,速度会很慢(最快下降,但是速度慢),而只循环数据集的子集之后马上修正参数,参数修正速率会快很多(快速寻找相对下降的方向)。


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

d) 来源地址:
https://youtu.be/IHZwWFHWa-w
https://github.com/mnielsen/neural-networks-and-deep-learning</pre>
Project 2. 通过二次元头像生成学习GAN神经网络(李宏毅GAN2018)
1.理解Generator和Discriminator概念和对抗过程

2.生成器的模型和作用

3. 判别器的模型和作用

4. 生成对抗过程Algorithm
-
Fix generator G and update Discriminator D 用数据集和随机向量生成的图片训练判别器D识别图像真实程度
-
Fix Discriminator D and update generator G 训练生成器G生成能“骗过”判别器D的图像
-
重复1,2过程,经典的GAN具体算法:经典的GAN神经网络除了对抗的思想,生成器和判别器的训练和一般的神经网络没有很大的区别。

- 教程给出了一个例子。若确定GAN的第一个和最后一个向量,并在两者中间进行调整时,generator生成的图像会出现渐变的效果。案例的应用是控制神经元的某些参数可以达到生成相似正脸的图像,这个案例在重加光上有很好的类比作用。若用的数据集是很多不同加光的图像,就可能可以找到控制重加光的神经元。

- 基本理解GAN神经网络的基本概念,下一步准备尝试实现经典GAN代码。
Project 3. 深度学习理解在人脸照片重加光上的应用
-
题目理解:训练GAN神经网络,找到其中影响照片加光方向的神经元,调节某些神经元权重和偏置以控制生成照片的加光情况。
-
大体思路:
a) 用有加光方向影响的人物图像作为训练集,训练GAN神经网络。这样生成器生成的人物图像就会有不同加光影响。
b) 很直接的想法是寻找权重较大的神经元进行控制,进行试错。更多的方法还需要进一步学习。
c) 尝试多种GAN神经网络。如老师之前发的新闻中的BigGAN
三:总结和计划
-
总结:总体而言,通过经典案例和教程比较泛的对所有需要的知识进行了复习和学习。下一步计划对原理和代码进行学习研究。
-
计划:
-
实现对手写数字的代码实现。从数学推导掌握神经网络原理。
-
继续对GAN的学习。掌握原始GAN的思想和实现,接触其他GAN变形的原理和实现方法。
黄俊嘉
2018年10月14日
网友评论