TensorFlow 简介:机器学习技术使用入门

姓名:马行健

学号:16020199036

转载自:https://zhuanlan.zhihu.com/p/45071855

【嵌牛导读】:Google 开发者大会 (Google Developer Days,简称 GDD) 是展示 Google 最新开发者产品和平台的全球盛会,旨在帮助你快速开发优质应用,发展和留住活跃用户群,充分利用各种工具获得更多收益。2018 Google 开发者大会于 9 月 20 日和 21 日于上海举办。

【嵌牛正文】:

2018 年 9 月 20 日 Laurence Moroney(Google 开发者技术推广工程师)与付弋真(Google Brain 的软件工程师)带来一场《TensorFlow 简介:机器学习技术使用入门》的演讲,本文将对演讲做一个回顾。

机器学习与传统编程

TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

Laurence Moroney讲述了他所经历的变革: - 网页的变革从程序员的角度上来说,网页改变了人们所有的一切。通过网页,程序员们可以写出让上亿的用户接触到的程序。这场变革带了新的商业模式,比如谷歌、百度、淘宝等等。 - 智能手机也带来了一场变革,同样也带来了像滴滴和 Uber 这样的商业体验。 - 我们正在面临下个变革,也就是机器学习的变革。

如上图所示,Laurence Moroney认为人工智能正处在技术萌芽触发期与期望膨胀顶峰期之间。

运动检测APP场景

在借助手机速度传感器的帮助下,我们可以获取当前用户的速度,然后再使用代码进行判断。 - speed < 4 定义为步行, - 4 <= speed < 12 定义为跑, - speed > 12 定义为骑车。

一些简单的运动场景可以通过上述类型的方式进行检测,倘若像用户在打高尔夫这种复杂的运动场景是无法被检测出来,而机器学习可以帮我们解决在这个问题。

传统编程方式是设定规则和数据,从而给出答案。通过Java、Python、C++等语言来编写规则,在输入一些数据之后打包编译成程序,给出答案,简单运动检测APP就是这样实现的。

机器学习需要程序员提供答案和数据,给答案打上标签,在数据的配合之下,机器会自己研究出规则。

在机器学习的环境下,程序员们需要提供上述所示数据和标签,机器自己会找出数据之间的关联,从而得到规则,而不再需要程序员自己去定义复杂的规则。这样会变得更加智能化,在能检测简单的运动状态的同时,也能够检测出向打高尔夫这样难以用规则去判断的复杂的运动状态。

在学习新的事物时,我们的大脑往往是先得到答案和数据,从而总结出经验规律,这也是机器学习所想要实现的。在玩井字棋(如下图所示),一开始我们只是了解这个游戏的规则和玩法,但是如何赢得比赛就需要数盘的游戏经历,从中总结出经验。

机器学习就是在模仿人类,通过大量的数据和标签,得到规则,从而解决问题。让机器像人一样学习,这是机器学习所要走的第一步。

在机器学习的程序设计中,第一个阶段为训练阶段,程序员需要提供数据和答案(标签),从而得到模型。第二个是推理阶段,给模型提供数据,它会做出相应的预测。

代码实践( 付弋真主讲 )

数字之间关系

下面有两列数字,X 和 Y 之间存在关系。将数字提供给机器,希望机器像人脑一样学习,从而给出数字之间的关系。

有一定数学基础的同学,应该很快能够给出 X 和 Y 之间的关系为:2x - 1 = y。我们在看到这些数字之后,大脑会尝试去找出一些规律,利用我们所拥有的数学经验,进行猜测,猜测的验证结果是正确,所以得到了这个方程式。那通过机器学习如何做到这一点呢?

from tensorflow import keras

import numpy as np

model = keras.Sequential([keras.layers.Dense(units = 1, input_shape = [1])])

model.compile(optimizer = 'sgd', loss = 'mean_squared_error')

xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype = float)

ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype = float)

model.fit(xs, ys, epochs = 500)

print(model.predict([10.0]))

结果如下:

通过机器学习我们得到值为18.976957,而并不是 19,因为神经网络存在很多种可能性,机器给出的是一个预测的结果而不是一个准确无误的结果。

#### 识别不同的衣服

上图中有8中不同的衣服,作为人类我们可以分辨每个衣服的种类。那机器能否做到这一点呢?

Fashion-MNIST是一个替代MNIST手写数字集的图像数据集。 它是由Zalando(一家德国的时尚科技公司)旗下的研究部门提供。其涵盖了来自10种类别的共7万个不同商品的正面图片。Fashion-MNIST的大小、格式和训练集/测试集划分与原始的MNIST完全一致。60000/10000的训练测试数据划分,28x28的灰度图片。

通过 Fashion-MNIST 数据集,可以对我们的模型进行训练,不断地优化,从而提高识别准确率。

import tensorflow as tf

from tensorflow import keras

import numpy as np

# Import the Data

fashion_mnist = keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, teat_labels) = fashion_mnist.load_data()

# Normalize the data

train_images = train_images / 255.0

test_images = test_images / 255.0

#Define the model

model = keras.Sequential([

    keras.layers.Flatten(inport_shape = (28,28)),

    keras.layers.Dense(128, activation = tf.nn.relu),

    keras.layers.Dense(10, activation = tf.nn.softmax),

])

model.compile(oprimizer = tf.train.AdadeltaOptimizer(),loss = 'sparse_categorical_crossentropy',metrics=['accuracy'])

#Train the model

model.fit(train_images, train_labels, epochs = 5, verbose = 2)

predictions = model.predict(test_images)

print(test_images[4560])

print(np.argmax(predictions[4560]))

运行结果如下:

在设置5次迭代的前提下,本模型的成功率为 71% 。神经网络可以通过更多的训练,从而提高准确率。

以上就是本次演讲的全部内容,希望对大家有所帮助。


图片发自简书App


图片发自简书App


图片发自简书App


图片发自简书App


图片发自简书App


图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容