2018-07-13 16:21:39 weixin_38267719 阅读数 1148

    之前为了熟悉机器学习的东西去搞kaggle的东西,然后就从Titanic入门咯,结果发现并没有对机器学习的东西有深入的理解,做数据挖掘的时候直接调用sklearn里面的框架,根本不用去想机器学习的公式的运用和基础的实现,想用SVM就直接from sklearn import svm,然后clf = svm.SVC(kernel='linear', C=1)往这里面填几个参数,知道基本原理和参数的含义就行。直到我看到这段话:

很多人说深度学习就是个黑箱子,把图像预处理之后丢进 tensorflow 就能出来预测结果,简单有效又省时省力。但正如我在上一篇推送中所说,如果你已是一名功力纯厚的深度学习工程师,这么做当然没问题。但我想大多数人也和我一样,都是走在学习深度学习的路上,一上来就上框架并没有什么特别不妥之处,但总归是对你理解深度学习的黑箱机制是了无裨益的。所以,我建议在学习深度学习的路上,从最简单的感知机开始写起,一步一步捋清神经网络的结构,以至于激活函数怎么写、采用何种损失函数、前向传播怎么写、后向传播又怎么写,权值如何迭代更新,都需要你自己去实现。若在一开始就直接调用框架,小的 demo 可以跑起来,糊弄一时,看起来就像是鸠摩智在内力未到的情形下强行练习少林寺的 72 绝技,最后走火入魔。

我发现我好像走火入魔了,这时我想着我又该把基础打打牢了,之前看过吴老师的机器学习,只能算是理论上有了一定认识,没做过多实践,代码和理论还没好好联系起来,然后就找到了李飞飞深度学习与计算机视觉,下面开始我的第一课——KNN。

先贴点网址  

https://zhuanlan.zhihu.com/p/21930884     大牛搞的CS231n官方笔记授权翻译总集

http://cs231n.stanford.edu/2016/syllabus    英文的CS231n官方笔记

http://www.cs.toronto.edu/~kriz/cifar.html    做学习的数据集

特别感谢翻译笔记的哥们。

第一部分 KNN算法实现

先贴原理,具体原理直接看笔记,我自己做个总结

一、概念&意义

二、计算步骤:

1算距离:给定测试对象,计算它与训练对象距离

2找邻居:圈定距离最近的 k个对象,作为测试对象的近邻

3做分类:根据这k个近邻归属的主要类别,来对测试对象分类

三、三个基本要素

I距离度量


a)p=2时,为欧式距离:


b)p=1时,为曼哈顿距离:


II、K值的选择

K值越小,整体模型越复杂,容易发生过拟合

K值越大,整体模型越简单,近似误差会增大(误分类)

III、测试对象类别的判定

a)   多数表决:


其中v是类标号,yi是一个最近邻的类标号,I(.)是指示函数,如果其参数为真,则返回1,否则,返回0

b)   距离加权表决:


# 损失函数的公式L = -(1/N)∑i∑j1(k=yi)log(exp(fk)/∑j exp(fj)) +λR(W)
再上代码
import numpy as np
class KNearestNeighbor(object):#首先是定义一个处理KNN的类
  """ a kNN classifier with L2 distance """
 
  def __init__(self):
      pass
 
  def train(self, X, y):
    self.X_train = X
    self.y_train = y
    
  def predict(self, X, k=1, num_loops=0):
    if num_loops == 0:
      dists = self.compute_distances_no_loops(X)
    elif num_loops == 1:
      dists = self.compute_distances_one_loop(X)
    elif num_loops == 2:
      dists = self.compute_distances_two_loops(X)
    else:
      raise ValueError('Invalid value %d for num_loops' % num_loops)
 
    return self.predict_labels(dists, k=k)
 
  def compute_distances_two_loops(self, X):
    num_test = X.shape[0]
    num_train = self.X_train.shape[0]
    dists = np.zeros((num_test, num_train))
    for i in xrange(num_test):
      for j in xrange(num_train):
        dists[i][j] = np.sqrt(np.sum(np.square(self.X_train[j,:] - X[i,:])))
    return dists
 
  def compute_distances_one_loop(self, X):
    num_test = X.shape[0]
    num_train = self.X_train.shape[0]
    dists = np.zeros((num_test, num_train))
    for i in range(num_test):   #i就是类别,i=1即类1
      dists[i,:] = np.sqrt(np.sum(np.square(self.X_train-X[i,:]),axis = 1))
    return dists
 
  def compute_distances_no_loops(self, X):
    num_test = X.shape[0]
    num_train = self.X_train.shape[0]
    dists = np.zeros((num_test, num_train))   #dists(测试类别数,测试集的数量)
    dists = np.multiply(np.dot(X,self.X_train.T),-2) 
    sq1 = np.sum(np.square(X),axis=1,keepdims = True) 
    sq2 = np.sum(np.square(self.X_train),axis=1) 
    dists = np.add(dists,sq1) 
    dists = np.add(dists,sq2) 
    dists = np.sqrt(dists)
    return dists

  def predict_labels(self, dists, k=1):
    num_test = dists.shape[0]
    y_pred = np.zeros(num_test)
    for i in range(num_test):
      closest_y = [] 
      closest_y = self.y_train[np.argsort(dists[i,:])[:k]] 
      y_pred[i]=np.argmax(np.bincount(closest_y))       
    return y_pred

代码总结
python自己基本上算是没学过,靠着C++的底子强行直接上了,给自己留一点提示吧
def __init__(self):
      pass   #一般不pass,一般def __init__(self,X,y):self.X=X,就是把外部传入的变量变成类内部的东西,当然也可以像代码中再搞个方法来做这个步骤
def train(self, X, y):
    self.X_train = X
    self.y_train = y
这段代码就相当于做了刚才的工作
    if num_loops == 0:
      dists = self.compute_distances_no_loops(X)
    elif num_loops == 1:
      dists = self.compute_distances_one_loop(X)
    elif num_loops == 2:
      dists = self.compute_distances_two_loops(X)
这就是三种计算测试集中每张图片和训练集中每张图片的距离的方法,循环次数不同。

计算之后返回dists
如果是2*2的图片的话,dists=num_test_picture*(num_train_picture个test_picture与train_picture之间的距离)
np.argsort(dists[i,:])对每一种num_test_picture对应的num_train_picture个距离进行排序
closest_y = self.y_train[np.argsort(dists[i,:])[:k]]  然后对每一种num_test_picture取前k个到closest_y,closest_y
p.argmax:最大值的索引
x = np.array([0, 1, 1, 3, 2, 1, 7])  索引0出现了1次,索引1出现了3次......索引5出现了0次...... np.bincount(x),因此,输出结果为:array([1, 3,1, 1, 0, 0, 0, 1])
y_pred[i] = np.argmax(np.bincount(closest_y))#就把索引出现最多的那个所以赋值到y_pred[i]

第二部分 导入数据集和做预测

# -*- coding: utf-8 -*-
import pickle as p
import numpy as np
import os
import KNearestNeighbor
def load_CIFAR_batch(filename):
    """ 载入cifar数据集的一个batch """
    with open(filename, 'rb') as f:
        datadict = p.load(f, encoding='latin1')
        X = datadict['data']
        Y = datadict['labels']
        X = X.reshape(10000, 3, 32, 32).transpose(0, 2, 3, 1).astype("float")
        Y = np.array(Y)
        return X, Y

def load_CIFAR10(ROOT):
    """ 载入cifar全部数据 """
    xs = []
    ys = []
    for b in range(1, 2):
        f = os.path.join(ROOT, 'data_batch_%d' % (b,))
        X, Y = load_CIFAR_batch(f)
        xs.append(X)         #将所有batch整合起来
        ys.append(Y)
    Xtr = np.concatenate(xs) #使变成行向量,最终Xtr的尺寸为(50000,32*32*3)
    Ytr = np.concatenate(ys)
    del X, Y
    Xte, Yte = load_CIFAR_batch(os.path.join(ROOT, 'test_batch'))
    return Xtr, Ytr, Xte, Yte
   
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (10.0, 8.0)
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

# 载入CIFAR-10数据集
cifar10_dir = 'julyedu/datasets/cifar-10-batches-py'
X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir)
这样算是导入了

X_train=np.reshape(X_train,(X_train.shape[0],-1))
X_test=np.reshape(X_test,(X_test.shape[0],-1))
把X_train变成行为训练集图片张数,列为单张图片的各个像素点的各个通道,如果X_train有500张图,32*32大小,彩色的图像,那X_train就变成了500*(32*32*3)的矩阵

X_train=X_train[0:10000,:]
X_test=X_test[0:500,:]
y_train=y_train[0:10000]
y_test=y_test[0:500]
然后训练集10000张,测试集取500来测试

得把之前写的KNN算法的代码导入一下,KNN算法也是我写成了KNearestNeighbor.py,那就import KNearestNeighbor,导入完就可以用算法来做预测了,分别取k为不同的数,看看预测的准确率
for k in [1, 3, 5, 10, 20, 50, 100]:
  # use a particular value of k and evaluation on validation data
  nn = KNearestNeighbor.KNearestNeighbor() #这里有两个KNearestNeighbor,一个是文件,后面的是文件里的类
  nn.train(X_train, y_train)
  # here we assume a modified NearestNeighbor class that can take a k as input
  Yval_predict = nn.predict(X_test, k = k)
  acc = np.mean(Yval_predict == y_test)
  print( 'accuracy: %f' % (acc,))

贴一下预测结果
accuracy: 0.276000
accuracy: 0.304000
accuracy: 0.324000
accuracy: 0.306000
accuracy: 0.298000
accuracy: 0.264000
accuracy: 0.262000
结果显示k=5的时候,准确率最高,至此为止,第一步算是成功的跨出去了,花了我好几天时间,,主要是python的api都不太熟悉。

2018-01-20 00:00:00 dQCFKyQDXYm3F8rB0 阅读数 5698



翻译 | AI科技大本营

参与 | 刘畅

编辑 | Donna


目前,深度学习和深度强化学习已经在实践中得到了广泛的运用。资源型博客sky2learn整理了15个深度学习和深入强化学习相关的在线课程,其中包括它们在自然语言处理(NLP),计算机视觉和控制系统中的应用教程。


这些课程涵盖了神经网络,卷积神经网络,循环网络和其变体,训练深度网络的困难,无监督表示学习,深度信念网络,深玻尔兹曼机器,深度Q学习,价值函数估计和优化以及蒙特卡洛树搜索等多种算法的基础知识。


吴恩达:深度学习专项


这系列课程侧重于讲解深度学习的基础和在不同领域的运用方式,如医疗健康,自动驾驶,手语阅读,音乐生成和自然语言处理等。课程共包含五个子课程,有视频讲座。同时,课程用户将获得使用TensorFlow解决实际问题的实践经验。


链接:https://www.coursera.org/specializations/deep-learning


CMU: 深度学习


该课程由苹果人工智能研究所主任Ruslan Salakhutdinov主导。课程首先讲解了一些例如前馈神经网络、反向传播、卷积模型等的基本知识。然后介绍深度学习中的要点,包括有向图和无向图模型,独立成分分析(ICA),稀疏编码,自动编码器,限制玻尔兹曼机(RBM),蒙特卡罗方法,深度信念网络,深度玻尔兹曼机和亥姆霍兹机。其他内容包括深度网络中的正则化和优化、序列建模和深度强化学习。


链接:http://www.cs.cmu.edu/~rsalakhu/10707/


斯坦福大学:深度学习理论(Stat385)


本课程讨论深度学习理论方面的知识。有8次特邀嘉宾讲座,这些嘉宾是深度学习、计算神经科学和统计学方面的领军人物。您将有机会在深度学习中,针对当前的研究趋势,探索他们观点的多样性和跨学科性。这门课有视频讲座。


链接:https://stats385.github.io/


Yoshua Bengio: 深度学习


该课程由蒙特利尔大学主导。课程首先回顾了神经网络的基本知识,包括感知器,反向传播算法和梯度优化。然后介绍了神经网络、概率图形模型、深度网络和表示学习等前沿知识。


链接:https://ift6266h16.wordpress.com/


UC Berkeley: 深度强化学习


该课程包括强化学习的基本知识:Q-学习和策略梯度,同时还包含了高级模型学习和预测、提取、奖励学习以及高级深度强化学习,例如信赖域策略梯度方法、actor-critic方法、探索方法。本门课有视频讲座。


链接:http://rll.berkeley.edu/deeprlcourse/


Yoshua Bengio: 深度学习与强化学习暑期学校


暑期学校是由Yoshua Bengio和他的同事们组织。课程包括了深度学习和强化学习两个方向,内容有两个领域的基本知识,研究趋势和最新发现。课程特别邀请这两个领域的主要学者和研究人员进行讲解。暑期学校有视频讲座。


链接:https://mila.quebec/en/cours/deep-learning-summer-school-2017/


Google & Udacity: 深度学习


该课程由谷歌首席科学家Vincent Vanhoucke和Udacity的Arpan Chakraborty共同创立。课程内容包括深度学习、深层神经网络、卷积神经网络和针对文本和序列的深层模型。课程作业要求使用tensorflow。这门课有视频讲座。


链接:https://cn.udacity.com/course/deep-learning--ud730


斯坦福大学:基于深度学习的自然语言处理(CS224n)


该课程是2017年冬斯坦福大学 “cs224n:深度学习中的自然语言处理”课程的压缩版,也是斯坦福大学2018课程的延续版。课程讨论了如何将深度学习应用在自然语言处理中,自然语言处理中的问题以及在自然语言处理中使用深度学习的限制。讲师有Christopher Manning和Richard Socher。


链接:

https://www.youtube.com/playlist?list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6


牛津大学:自然语言处理中的深度学习


本课程涵盖深度学习的基本原理以及如何将其应用在自然语言处理中。用户将学习如何定义这个领域中的数学问题,以及获得使用CPU和GPU的实际编程的经验。讲师分别来自牛津大学、CMU、DeepMind和英伟达公司。 这门课程包括视频讲座。


链接:https://github.com/oxford-cs-deepnlp-2017/lectures


李飞飞:视觉识别中的卷积神经网络(cs231n


本课程将涵盖深度学习的基础知识,以及如何将深度学习技术应用于计算机视觉。学生将通过作业和最终项目获得如何训练和微调神经网络的实践经验。该课程主要使用Python语言。本课程包括视频讲座。


链接:http://cs231n.stanford.edu/


CMU: 深度强化学习与控制


本课程由苹果人工智能研究所主任Ruslan salakhutdinovat和CMU的Katerina Fragkiadaki主导。内容包括深度学习,强化学习,马尔可夫链决策过程(MDP),部分可观马尔可夫链决策过程(POMDPs),时序差分学习,Q学习,深度学习,深刻Q学习的基础知识。前沿话题包括最优化控制、轨道优化、层次强化学习和迁移学习。


链接:https://katefvision.github.io/


CMU: 深度学习入门


本课程由苹果公司人工智能研究所主任Ruslan Salakhutdinov主导,对深度学习做了一个快速而深入的介绍。课程共分为四个一小时时长的视频讲座,涵盖了监督学习,无监督学习,以及深度学习中的模型评估和开放式的研究问题等内容。


链接:https://simons.berkeley.edu/talks/tutorial-deep-learning


RLDM: 深度强化学习入门


课程由DeepMind的David Silver主导,发表于第二届强化学习与决策多学科会议(RLDM)上。在这一个半小时的视频教程中,用户将了解深度学习,强化学习的基本原理,以及如何将深度学习和强化学习以各种方式结合:即深度价值函数,深度策略,和深度模型。此外,用户还能向顶级专家学习如何处理这些方法中的发散问题。


链接:http://videolectures.net/rldm2015_silver_reinforcement_learning/


UC Berkeley: 深度强化学习入门


这是一个关于强化学习长达一小时的教程,配有视频讲座。用户将看到强化学习能有多厉害。


链接:https://simons.berkeley.edu/talks/pieter-abbeel-2017-3-28


MLSS: 深度强化学习入门


课程由OpenAI公司的研究科学家John Schulman主导,包括4个1小时长的视频讲座,并带有针对实验室问题的练习。


链接:

https://www.youtube.com/playlist?list=PLjKEIQlKCTZYN3CYBlj8r58SbNorobqcp



原文地址:https://sky2learn.com/deep-learning-reinforcement-learning-online-courses-and-tutorials-theory-and-applications.html



热文精选



2018 年了,该不该下定决心转型AI呢?

不用数学也能讲清贝叶斯理论的马尔可夫链蒙特卡洛方法?这篇文章做到了

盘点深度学习一年来在文本、语音和视觉等方向的进展,看强化学习如何无往而不利

先搞懂这八大基础概念,再谈机器学习入门!

这三个普通程序员,几个月就成功转型AI,他们的经验是...

干货 | AI 工程师必读,从实践的角度解析一名合格的AI工程师是怎样炼成的

AI校招程序员最高薪酬曝光!腾讯80万年薪领跑,还送北京户口

详解 | 如何用Python实现机器学习算法

经验 | 如何高效学Python?

Twitter大牛写给你的机器学习进阶手册




2018-05-29 14:37:54 jichihui7464 阅读数 1982

今天开始学习李飞飞老师的公开课。希望可以顺利入门深度学习。

一、k最近邻与线性分类器

     k近邻分类器工作方式是高效的得到本联合训练集。


附:

python处理数据基础:

import numpy as np

# Create the following rank 2 array with shape (3, 4)
# [[ 1  2  3  4]
#  [ 5  6  7  8]
#  [ 9 10 11 12]]
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])

# Two ways of accessing the data in the middle row of the array.
# Mixing integer indexing with slices yields an array of lower rank,
# while using only slices yields an array of the same rank as the
# original array:
row_r1 = a[1, :]    # Rank 1 view of the second row of a
row_r2 = a[1:2, :]  # Rank 2 view of the second row of a
print(row_r1, row_r1.shape)  # Prints "[5 6 7 8] (4,)"
print(row_r2, row_r2.shape)  # Prints "[[5 6 7 8]] (1, 4)"

# We can make the same distinction when accessing columns of an array:
col_r1 = a[:, 1]
col_r2 = a[:, 1:2]
print(col_r1, col_r1.shape)  # Prints "[ 2  6 10] (3,)"
print(col_r2, col_r2.shape)  # Prints "[[ 2]
                             #          [ 6]
                             #          [10]] (3, 1)"

python中处理数组与matlab是不一样的。

When you index into numpy arrays using slicing, the resulting array view will always be a subarray of the original array. In contrast, integer array indexing allows you to construct arbitrary arrays using the data from another array. Here is an example:

当使用切片对索引数组进行索引时,生成的数组视图将始终是原始数组的子数组。相反,整数数组索引允许您使用来自另一个数组的数据构造任意数组。(既它可以不是原始数组中的一个子数组,而是由原始数组中不同位置元素组成的新数组。)

import numpy as np

a = np.array([[1,2], [3, 4], [5, 6]])

# An example of integer array indexing.
# The returned array will have shape (3,) and
print(a[[0, 1, 2], [0, 1, 0]])  # Prints "[1 4 5]"

# The above example of integer array indexing is equivalent to this:
print(np.array([a[0, 0], a[1, 1], a[2, 0]]))  # Prints "[1 4 5]"

bool值应用于数组中选取符合条件的数据。

import numpy as np

a = np.array([[1,2], [3, 4], [5, 6]])

bool_idx = (a > 2)   # Find the elements of a that are bigger than 2;
                     # this returns a numpy array of Booleans of the same
                     # shape as a, where each slot of bool_idx tells
                     # whether that element of a is > 2.

print(bool_idx)      # Prints "[[False False]
                     #          [ True  True]
                     #          [ True  True]]"

# We use boolean array indexing to construct a rank 1 array
# consisting of the elements of a corresponding to the True values
# of bool_idx
print(a[bool_idx])  # Prints "[3 4 5 6]"

# We can do all of the above in a single concise statement:
print(a[a > 2])     # Prints "[3 4 5 6]"

numpy与matlab进行点乘与数乘时的不同之处:

Note that unlike MATLAB, * is elementwise multiplication, not matrix multiplication. We instead use the dotfunction to compute inner products of vectors, to multiply a vector by a matrix, and to multiply matrices. dot is available both as a function in the numpy module and as an instance method of array objects:

import numpy as np

x = np.array([[1,2],[3,4]])
y = np.array([[5,6],[7,8]])

v = np.array([9,10])
w = np.array([11, 12])

# Inner product of vectors; both produce 219
print(v.dot(w))
print(np.dot(v, w))

# Matrix / vector product; both produce the rank 1 array [29 67]
print(x.dot(v))
print(np.dot(x, v))

# Matrix / matrix product; both produce the rank 2 array
# [[19 22]
#  [43 50]]
print(x.dot(y))
print(np.dot(x, y))

Numpy provides many useful functions for performing computations on arrays; one of the most useful is sum:

numpy提供的矩阵加法,分为行加,列加或全加。

import numpy as np

x = np.array([[1,2],[3,4]])

print(np.sum(x))  # Compute sum of all elements; prints "10"
print(np.sum(x, axis=0))  # Compute sum of each column; prints "[4 6]"
print(np.sum(x, axis=1))  # Compute sum of each row; prints "[3 7]"

numpy中提供的转置的方法:

Apart from computing mathematical functions using arrays, we frequently need to reshape or otherwise manipulate data in arrays. The simplest example of this type of operation is transposing a matrix; to transpose a matrix, simply use the T attribute of an array object:

import numpy as np

x = np.array([[1,2], [3,4]])
print(x)    # Prints "[[1 2]
            #          [3 4]]"
print(x.T)  # Prints "[[1 3]
            #          [2 4]]"

# Note that taking the transpose of a rank 1 array does nothing:
v = np.array([1,2,3])
print(v)    # Prints "[1 2 3]"
print(v.T)  # Prints "[1 2 3]"

Broadcasting

Broadcasting is a powerful mechanism that allows numpy to work with arrays of different shapes when performing arithmetic operations. Frequently we have a smaller array and a larger array, and we want to use the smaller array multiple times to perform some operation on the larger array.

他是可以自动扩展的。

import numpy as np

# We will add the vector v to each row of the matrix x,
# storing the result in the matrix y
x = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]])
v = np.array([1, 0, 1])
y = x + v  # Add v to each row of x using broadcasting
print(y)  # Prints "[[ 2  2  4]
          #          [ 5  5  7]
          #          [ 8  8 10]
          #          [11 11 13]]"

2018-01-23 20:59:57 PRIMEFJT 阅读数 688

这里写图片描述 
翻译 | AI科技大本营 
参与 | 刘畅 
编辑 | Donna

目前,深度学习和深度强化学习已经在实践中得到了广泛的运用。资源型博客sky2learn整理了15个深度学习和深入强化学习相关的在线课程,其中包括它们在自然语言处理(NLP),计算机视觉和控制系统中的应用教程。

这些课程涵盖了神经网络,卷积神经网络,循环网络和其变体,训练深度网络的困难,无监督表示学习,深度信念网络,深玻尔兹曼机器,深度Q学习,价值函数估计和优化以及蒙特卡洛树搜索等多种算法的基础知识。

吴恩达:深度学习专项

这系列课程侧重于讲解深度学习的基础和在不同领域的运用方式,如医疗健康,自动驾驶,手语阅读,音乐生成和自然语言处理等。课程共包含五个子课程,有视频讲座。同时,课程用户将获得使用TensorFlow解决实际问题的实践经验。

链接:https://www.coursera.org/specializations/deep-learning

CMU: 深度学习

该课程由苹果人工智能研究所主任Ruslan Salakhutdinov主导。课程首先讲解了一些例如前馈神经网络、反向传播、卷积模型等的基本知识。然后介绍深度学习中的要点,包括有向图和无向图模型,独立成分分析(ICA),稀疏编码,自动编码器,限制玻尔兹曼机(RBM),蒙特卡罗方法,深度信念网络,深度玻尔兹曼机和亥姆霍兹机。其他内容包括深度网络中的正则化和优化、序列建模和深度强化学习。

链接:http://www.cs.cmu.edu/~rsalakhu/10707/

斯坦福大学:深度学习理论(Stat385)

本课程讨论深度学习理论方面的知识。有8次特邀嘉宾讲座,这些嘉宾是深度学习、计算神经科学和统计学方面的领军人物。您将有机会在深度学习中,针对当前的研究趋势,探索他们观点的多样性和跨学科性。这门课有视频讲座。

链接:https://stats385.github.io/

Yoshua Bengio: 深度学习

该课程由蒙特利尔大学主导。课程首先回顾了神经网络的基本知识,包括感知器,反向传播算法和梯度优化。然后介绍了神经网络、概率图形模型、深度网络和表示学习等前沿知识。

链接:https://ift6266h16.wordpress.com/

UC Berkeley: 深度强化学习

该课程包括强化学习的基本知识:Q-学习和策略梯度,同时还包含了高级模型学习和预测、提取、奖励学习以及高级深度强化学习,例如信赖域策略梯度方法、actor-critic方法、探索方法。本门课有视频讲座。

链接:http://rll.berkeley.edu/deeprlcourse/

Yoshua Bengio: 深度学习与强化学习暑期学校

暑期学校是由Yoshua Bengio和他的同事们组织。课程包括了深度学习和强化学习两个方向,内容有两个领域的基本知识,研究趋势和最新发现。课程特别邀请这两个领域的主要学者和研究人员进行讲解。暑期学校有视频讲座。

链接:https://mila.quebec/en/cours/deep-learning-summer-school-2017/

Google & Udacity: 深度学习

该课程由谷歌首席科学家Vincent Vanhoucke和Udacity的Arpan Chakraborty共同创立。课程内容包括深度学习、深层神经网络、卷积神经网络和针对文本和序列的深层模型。课程作业要求使用tensorflow。这门课有视频讲座。

链接:https://cn.udacity.com/course/deep-learning–ud730

斯坦福大学:基于深度学习的自然语言处理(CS224n)

该课程是2017年冬斯坦福大学 “cs224n:深度学习中的自然语言处理”课程的压缩版,也是斯坦福大学2018课程的延续版。课程讨论了如何将深度学习应用在自然语言处理中,自然语言处理中的问题以及在自然语言处理中使用深度学习的限制。讲师有Christopher Manning和Richard Socher。

链接: 
https://www.youtube.com/playlist?list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6

牛津大学:自然语言处理中的深度学习

本课程涵盖深度学习的基本原理以及如何将其应用在自然语言处理中。用户将学习如何定义这个领域中的数学问题,以及获得使用CPU和GPU的实际编程的经验。讲师分别来自牛津大学、CMU、DeepMind和英伟达公司。 这门课程包括视频讲座。

链接:https://github.com/oxford-cs-deepnlp-2017/lectures

李飞飞:视觉识别中的卷积神经网络(cs231n)

本课程将涵盖深度学习的基础知识,以及如何将深度学习技术应用于计算机视觉。学生将通过作业和最终项目获得如何训练和微调神经网络的实践经验。该课程主要使用Python语言。本课程包括视频讲座。

链接:http://cs231n.stanford.edu/

CMU: 深度强化学习与控制

本课程由苹果人工智能研究所主任Ruslan salakhutdinovat和CMU的Katerina Fragkiadaki主导。内容包括深度学习,强化学习,马尔可夫链决策过程(MDP),部分可观马尔可夫链决策过程(POMDPs),时序差分学习,Q学习,深度学习,深刻Q学习的基础知识。前沿话题包括最优化控制、轨道优化、层次强化学习和迁移学习。

链接:https://katefvision.github.io/

CMU: 深度学习入门

本课程由苹果公司人工智能研究所主任Ruslan Salakhutdinov主导,对深度学习做了一个快速而深入的介绍。课程共分为四个一小时时长的视频讲座,涵盖了监督学习,无监督学习,以及深度学习中的模型评估和开放式的研究问题等内容。

链接:https://simons.berkeley.edu/talks/tutorial-deep-learning

RLDM: 深度强化学习入门

课程由DeepMind的David Silver主导,发表于第二届强化学习与决策多学科会议(RLDM)上。在这一个半小时的视频教程中,用户将了解深度学习,强化学习的基本原理,以及如何将深度学习和强化学习以各种方式结合:即深度价值函数,深度策略,和深度模型。此外,用户还能向顶级专家学习如何处理这些方法中的发散问题。

链接:http://videolectures.net/rldm2015_silver_reinforcement_learning/

UC Berkeley: 深度强化学习入门

这是一个关于强化学习长达一小时的教程,配有视频讲座。用户将看到强化学习能有多厉害。

链接:https://simons.berkeley.edu/talks/pieter-abbeel-2017-3-28

MLSS: 深度强化学习入门

课程由OpenAI公司的研究科学家John Schulman主导,包括4个1小时长的视频讲座,并带有针对实验室问题的练习。

链接: 
https://www.youtube.com/playlist?list=PLjKEIQlKCTZYN3CYBlj8r58SbNorobqcp

原文地址:https://sky2learn.com/deep-learning-reinforcement-learning-online-courses-and-tutorials-theory-and-applications.html

深度学习(八)——fine-tuning, 李飞飞

博文 来自: antkillerfarm
没有更多推荐了,返回首页