神经网络之深度学习

神经网络非线性能力即原理
1. 感知器与逻辑门
2. 强大的空间非线性切分能力
3. 网络表达能力与过拟合问题
4. BP算法与SDG

Café主要是用于图像的主流框架
Tensflow框架,灵活的网络,工程上做训练,常用库TF-learning,TensorLayer
Kreas框架 搭建常用网络
深度学习应用:
图像上的应用:给照片打标签;对相册分类;拍立淘;自动驾驶
NLP上的应用:模仿小四的文笔;google中英文翻译
综合应用:看图说话 ;问答系统
一点基础:线性分类器(在样本点空间找到分割面,最简单的叫线性分割,在二维空间中找到直线分割这些点,三维空间就是一个平面…)
针对图像,就是去找到一个合适的映射函数,通过这个函数映射到一个10个类别的得分向量。

损失函数:可以调整参数或权重W,使得映射结果和实际类别吻合,损失函数用来衡量吻合度。损失函数1:hinge loss/支持向量机损失 标准答案的得分,比那些错误分类的得分都高出一个安全的delta。假设正确答案是猫,看所有非猫的答案和s2(猫的得分)之间的差距,在安全距离之外,损失则为0,超过安全距离,则给惩罚加到最后的Loss

损失函数2:交叉熵损失(softmax分类器)
熵描述混乱程度的
互熵描述两个分布之间的关系
假设分类是狗猫大象,实际是猫,所以标准答案的概率向量[0,1,0] ,另一个是算出来的得分的概率向量[0.9, 0.05, 0.5] (将得分取e,然后归一化,取log,乘法取Log可以变成加法,使得可以在计算机的精度范围内进行计算)。评估这两个概率向量的差异的一个方式就是交叉熵,可以从最大似然的角度理解,猫是正确答案,则希望log(P猫)最大,则最小化-log(P猫)。为什么不用MSE,因为是非凸的函数。

通用的学习框架
在不同的数据类型上去学习的结构,隐层可能是局部的特征抽取,交叉和组合

逻辑回归是很简单的线性分类器,从逻辑回归到神经元感知器,θ0是偏置项。添加少量隐层,浅层神经网络。

有时候线性分类器是分不开我们的类别,这时候我们的决策边界要是曲面的,而神经元可以完成类似于【逻辑与】,中间加一隐藏层(如下图,g(Θx)),只有x1,x2同时满足等于1的情况下,g(θx)才取值为1,类别判别为×,x1,x2可以认为是线性决策边界(逻辑回归),同时满足两个的才能选出×,这样就完成了平面的非线性切分。神经元也可以完成【逻辑或】操作。

对线性分类器的AND和OR的组合,完美的对平面的样本点分布进行分类。如下图,把绿色的那块用若干的线性分类器抠出来,然后用AND组合起来,就能把这块区域抠出来。

一个隐藏肯定可以完成AND的操作,and可以把若干个决策边界组合,开凸区域或者闭凸区域都可以抠出来;双隐层可以任意形状,可以把刚刚抠出来的区域求OR。

过多的隐藏层和神经元节点,会带来过拟合问题。不要试图通过降低神经网络数量来缓解过拟合,用正则化或dropout。
神经网络的结构:隐层就是对我上一层的数据做一些交叉组合,形象点就是在抽特征。

神经网络之传递函数(激活函数):
对每一层的输出有个非线性的处理。S函数(sigmoid)VS双S函数。相当于wx+b外面加一个非线性映射。

神经网络之BP算法:
“正向传播”求损失,“反向传播”回传误差,根据误差信号修正每层的权重。

神经网络之SDG
Error是权重W的函数,我们需要找到使得函数最小值的W

应用了复合函数的链式求导法则,下面第一个公式就是对w1求导,第二就是原则求导的梯度方向走。

Google wide&&Deep Model代码:

Import pandas as pd
From keras.models import Sequential #序贯模型,从底向上搭积木
From keras.layers import Dense, Merge #dense层(全连接)和merge层(拼接操作)
From sklearn.preprocessing import MinMaxScaler

def main():
df_train = load(‘adult.data‘)
df_test = load(‘adult.test‘)
df = pd.concat([df_train, df_test])
train_len = len(df_train)

X, y = preprocess(df)
X_train = X[:train_len]
y_train = y[:train_len]
X_test = X[train_len:]
y_test = y[train_len:]

#Wide部分
wide = Sequential() #初始化左边的wide部分
wide.add(Dense(1, input_dim=X_train.shape[1]))

#Deep部分
deep = Sequential()
# TODO: 添加embedding层
deep.add(Dense(input_dim=X_train.shape[1], output_dim=100, activation=‘relu‘)) #一个全连接
#deep.add(Dense(100, activation=‘relu‘))#一个激活函数
deep.add(Dense(input_dim=100, output_dim=32, activation=‘relu‘)) #再加第二次
#deep.add(Dense(50, activation=‘relu‘))#一个激活函数
deep.add(Dense(input_dim=32, output_dim=8))
deep.add(Dense(1, activation=‘sigmoid‘)) #1是最后输出1个节点 过一个sigmoid

#Wide和Deep拼接
model = Sequential()
model.add(Merge([wide, deep], mode=‘concat‘, concat_axis=1)) #左边和右边的连接在一起
model.add(Dense(1, activation=‘sigmoid‘)) #最后输出一个全连接

#编译模型
model.compile(
optimizer=‘rmsprop‘, #可以用SGD
loss=‘binary_crossentropy‘,
metrics=[‘accuracy‘]
)

#模型训练
model.fit([X_train, X_train], y_train, nb_epoch=10, batch_size=32)

时间: 2024-12-19 17:06:55

神经网络之深度学习的相关文章

(转)神经网络和深度学习简史(第一部分):从感知机到BP算法

深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chenxiaoqing.范娜Fiona.杨超.微胖.汪汪.赵巍 导读:这是<神经网络和深度学习简史>第一部分.这一部分,我们会介绍1958年感知机神经网络的诞生,70年代人工智能寒冬以及1986年BP算法让神经网络再度流行起来. 深度学习掀起海啸 如今,深度学习浪潮拍打计算机语言的海岸已有好几年,但是,

神经网络和深度学习-学习总结

1. 简介 神经网络和深度学习是由Michael Nielsen所写,其特色是:兼顾理论和实战,是一本供初学者深入理解Deep Learning的好书. 2. 感知器与sigmoid神经元 2.1 感知器(Perceptrons) 感知器工作原理:接收一系列二进制输入,经过特定的规则计算之后,输出一个简单的二进制. 计算规则:通过引入权重(weights)表示每个输入对于输出的重要性,则有 记w?x=∑jwjxj,b=-threshold,则有 其w是权重,b是偏差. 2.2 Sigmoid神经

吴恩达 DeepLearning.ai课程笔记(1-3)神经网络和深度学习 --- 浅层神经网络

以下为在Coursera上吴恩达老师的DeepLearning.ai课程项目中,第一部分<神经网络和深度学习>第二周课程部分关键点的笔记.笔记并不包含全部小视频课程的记录,如需学习笔记中舍弃的内容请至 Coursera 或者 网易云课堂.同时在阅读以下笔记之前,强烈建议先学习吴恩达老师的视频课程. 1. 二分类问题 对于二分类问题,大牛给出了一个小的Notation. 样本:  ,训练样本包含  个: 其中  ,表示样本 包含 个特征:  ,目标值属于0.1分类: 训练数据:  输入神经网络时

《神经网络与深度学习》(四) 受限玻尔兹曼机

转自:http://blog.csdn.net/qiao1245/article/details/50932519 谈到神经网络,就不得不提到最近非常火的深度学习.那么什么是深度学习?它与神经网络的关系是什么?深度学习的基本原理和常用算法是什么?我将在这篇中详细解答. 什么是深度学习 深度学习来源于人工神经网络,它的思想是组合低层次的特征从而构建出更加抽象的深层次特征.深度学习的概念由Hinton等人于2006年提出, 它是一个新的机器学习领域,通过更"深"层次的训练,它可以更加良好的

数据分析、数据挖掘、机器学习、神经网络、深度学习和人工智能概念区别(入门级别)

数据分析, 就是对数据进行分析, 得出一些结论性的内容, 用于决策. 分析什么哪? 根据分析现状. 分析原因. 预测未来. 分析现状和分析原因, 需要结合业务才能解释清楚. 用到的技术比较简单, 最简单的数据分析工具就是 Excel. 预测未来指的是分析未来一段时间的销售额之类的. 在预测未来方面, 一般用到数据挖掘的技术了. 数据挖掘, 从字面意思上看, 是从数据中挖掘出有价值的信息. 比如, 超市通过对一段时间的客户消费记录能发现, 哪些物品经常被顾客一起购买. 那么, 就可以把这些物品摆放

分享《神经网络与深度学习(美)Michael Nielsen 著》中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/18_Y7fJMaKwFRKKuGjYIreg 更多资料分享:http://blog.51cto.com/3215120 <神经网络与深度学习(美)Michael Nielsen 著>中文版PDF+英文版PDF+源代码中文版PDF,206页,带书签目录:英文版PDF,292页,带书签目录:配套源代码.经典书籍,讲解详细.神经网络和深度学习给出了在图像识别.语义识别和NLP领域中很多问题的最好解决方案.本书将会教你在神经网络和深度学习背后的众

《神经网络与深度学习(美)MichaelNielsen著》中英文版PDF+源代码+吴岸城版PDF

资源链接:https://pan.baidu.com/s/1-v89VftxGHdzd4WAp2n6xQ<神经网络与深度学习(美)Michael Nielsen 著>中文版PDF+英文版PDF+源代码以及<神经网络与深度学习 >(吴岸城版)中文版PDF,206页,带书签目录:英文版PDF,292页,带书签目录:配套源代码.经典书籍,讲解详细.神经网络和深度学习给出了在图像识别.语义识别和NLP领域中很多问题的最好解决方案.本书将会教你在神经网络和深度学习背后的众多核心概念.两本中文

分享《动手学深度学习(李沐等著)》PDF+源代码+《神经网络与深度学习(吴岸城)著》PDF

下载:https://pan.baidu.com/s/11O2m_uxSWJGbkXHF2Zh94w 更多资料:https://pan.baidu.com/s/1g4hv05UZ_w92uh9NNNkCaA <动手学深度学习(李沐等著)> 中文PDF,530页,带书签目录,文字可以复制粘贴.配套源代码. <神经网络与深度学习 (吴岸城)著>中文PDF,233页,带书签目录. 如图: 原文地址:https://www.cnblogs.com/limujun/p/10054478.ht

【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】

[吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和"AI是新电力"相类似的说法是什么? [ ?]AI为我们的家庭和办公室的个人设备供电,类似于电力. [ ?]通过"智能电网",AI提供新的电能. [?]AI在计算机上运行,??并由电力驱动,但是它正在让以前的计算机不能做的事情变为可能. [★]就像100年前产生电能一样,AI正在改变很多的行业. 请注意: 吴恩达在视频中表达了同样的观点. 哪些是深度学

对比《动手学深度学习》 PDF代码+《神经网络与深度学习 》PDF

随着AlphaGo与李世石大战的落幕,人工智能成为话题焦点.AlphaGo背后的工作原理"深度学习"也跳入大众的视野.什么是深度学习,什么是神经网络,为何一段程序在精密的围棋大赛中可以大获全胜?人工智终将会取代人类智慧吗? <神经网络与深度学习>是一本介绍神经网络和深度学习算法基本原理及相关实例的书籍,它不是教科书,作者已尽量把公式减少到最少,以适应绝大部分人的阅读基础和知识储备.<神经网络与深度学习>涵盖了神经网络的研究历史.基础原理.深度学习中的自编码器.深