机器学习(三)——Tensorflow

欢迎转载,请注明出处:https://blog.csdn.net/tayhh/article/details/82119943

1.先介绍下神经网络的重要元素:

①人工神经网络的优化机制:

是Optimization problem解决方案之一的Gradient Descent,Optimization还有Newton's method, Least squares method,有兴趣的同学可自行学习;

②误差方程:

cost function = (predicted -real)的平方;

③Gradient Descent找到初始化时误差曲线梯度下降的方向->更新参数->再找梯度下降的方向->更新参数。。。直到梯度线躺平;需要注意的是,梯度线躺平有可能是找到了全局最优解,也有可能只是找到局部最优解,不用纠结,即使是局部最优解也是很好的了。

机器学习(三)——Tensorflow_第1张图片

④理解神经网络:

都说神经网络是黑盒,实际上,神经网络是通过隐藏层提取代表性特征:

feature ->feature representation 1->feature representation 2->...->output

从这个角度来看,隐藏层的动作并不黑盒,只是提取出来的代表性特征,人类看不懂罢了,但是计算机看得懂。而提取代表性特征的能力剥离出来,就是迁移学习的关键;

2.tensorflow出身:

tensorflow是谷歌研发的人工智能学习系统;附上官网网址,同学自己学习:https://www.tensorflow.org/

3.tensorflow安装:

cpu版本:pip install tensorflow

gpu版本:pip install tensorflow-gpu

详细安装过程:https://www.tensorflow.org/install/

4.tensorflow通用学习模式:

机器学习(三)——Tensorflow_第2张图片

 

5.Session对话控制方式:

method 1:

sess = tf.Session()

sess.run()

sess.close

method 2:

with tf.Session() as sess:

sess.run()

6.定义变量:

tf.Variable()

需要和:

init = tf.initialize_all_variables()

sess.run(init)

共同使用

7.placeholder功能:

接收外部的传入值,

需要和feed_dict{input1:, input2:}共同使用

8.激活函数:

①一般是非线性方程;

②是对线性方程的掰弯:作用在神经元上,自变量是神经元的传入值,应变量是神经元的传出值;

③经常使用的激活函数是:relu,sigmod,tanh, 完整的激活函数:

机器学习(三)——Tensorflow_第3张图片

④选择激活函数:层数少的神经网络任选无碍;CNN一般选用relu;RNN一般选用relu或tanh;

9.添加或定义神经层:

定义三个方面:参数、合并计算、激励函数;

举个例子:

机器学习(三)——Tensorflow_第4张图片

机器学习(三)——Tensorflow_第5张图片

10.下篇继续讲tensorflow构造神经网络:CNN, RNN, LSTM in RNN

这篇完整代码已经上传github:tensorflow.py

https://github.com/Tayhh/MachineLearning

 

你可能感兴趣的:(机器学习)