深度学习简介及开发环境搭建


从今天开始我便正式进入到针对深度学习应用开发的学习中,主要课程资源为中国大学慕课,附网址如下:https://www.icourse163.org/course/ZUCC-1206146808

今天所学为第一讲 人工智能导论(略),第二讲 深度学习简介及开发环境搭建,其中第二讲中包括:人工智能,机器学习与深度学习,深度学习网路与深度学习框架,Anaconda和Tensorflow开发环境搭建

人工智能,机器学习与深度学习

首先介绍为19世纪50年代以来人工智能的发展,人工智能包含机器学习,机器学习是实现人工智能的一个分支,是实现人工智能的一个核心技术,机器学习中又包含深度学习,深度学习则是机器学习的一种实现方法,常见的有图片分类等应用。

机器学习的形式化的描述
对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能,随着经验E而自我完善,那么就称这个计算机程序从经验E学习

大致就是通过历史数据训练出一个模型,将新的数据输入,通过模型的预测,则去预测其未知属性

机器学习的学习形式分类:有监督学习,无监督学习,半监督学习,强化学习

有监督学习(supervised learning),事先准备好输入与正确输出相配套的训练数据,让计算机进行学习,以便当他被输入某个数据时能够得到正确的输出
无监督学习(unsupervised learning),仅提供输入用数据,需要计算机自己找出数据内在结构,目的是让计算机从数据中抽取其中所包含的模式及规则
半监督学习 (semi_supersived learning),训练数据一部分有标记,另一部分没有标记,而没有标记的数量常常极大于有标记数据的数量,基本规律:数据的分布必然不是完全随机的,通过结合有标记数据的局部特征,以及大量没标记数据的整体分布,可以得到比较好的分类结果
强化学习 (reinforcement learning),解决计算机从感知到决策控制的问题,强化学习是目标导向的,从白纸一张的状态开始,经由许多个步骤来实现某一维度上的目标最大化。最简单的理解是在训练过程中,不断去尝试,错误就惩罚,正确就奖励,由此训练得到的模型在各个状态环境中都最好。
对强化学习来说,它虽然没有标记,但有一个延迟奖励与训练相关,通过学习过程中的激励函数获得某种从状态到行动的映射。强化学习强调如何基于环境而行动,以取得最大化的预期利益。

无监督机器学习的典型应用模式:
聚类 常见算法: k-means 关联规则抽取

有监督机器学习的典型应用模式:
预测 针对连续数据 常见算法: 线性回归 Gradient Boosting AdaBoost 神经网络
预测 针对离散数据 常见算法: 逻辑回归 决策树 随机森林 朴素贝叶斯 神经网络

神经网络

包括输入层,隐含层,输出层
常见激活函数:
S型(Sigmoid)将加权和转换为介于0和1之间的值
Sigmoid
修正线性单元激活函数(简称为ReLU)易于计算
ReLU

深度神经网路与深度学习框架

卷积神经网络

卷积神经网络(Convolutional Neural Network, CNN)是深度学习中最重要的概念之一
20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现,其独特的网络结构可以有效降低神经网络的复杂性
1998年,Yann LeCun提出了LeNet神经网络,标志着第一个采用卷积思想的神经网络面世
CNN
CNN

Anaconda和Tensorflow开发环境搭建

鉴于课程提供的安装版本我的电脑并不支持,于是我自行从官网进行下载并进行了环境配置,其中遇到很多问题,面对众多的error报错,确实磨练了我的耐心,和解决问题的能力,安装过程就不再赘述了,总之大约花了我三四个小时吧

下面是我安装完成后的程序测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf

np.random.seed(5)

x_data = np.linspace(-1,1,100)
y_data = 2*x_data + 1.0 + np.random.randn(*x_data.shape) * 0.4

plt.scatter(x_data,y_data)
plt.plot(x_data,2 * x_data + 1.0,color = 'red',linewidth=3)
}

而我得到的运算结果如下:
RESULT