内容简介:Google 开发者大会 (Google Developer Days,简称 GDD) 是展示 Google 最新开发者产品和平台的全球盛会,旨在帮助你快速开发优质应用,发展和留住活跃用户群,充分利用各种工具获得更多收益。2018 Google 开发者大会于 9 月 20 日和 21 日于上海举办。Laurence Moroney(Google 开发者技术推广工程师)与付弋真(Google Brain 的软件工程师)带来一场《TensorFlow 简介:机器学习技术使用入门》的演讲,本文将对演讲做一个回顾
Google 开发者大会 (Google Developer Days,简称 GDD) 是展示 Google 最新开发者产品和平台的全球盛会,旨在帮助你快速开发优质应用,发展和留住活跃用户群,充分利用各种 工具 获得更多收益。2018 Google 开发者大会于 9 月 20 日和 21 日于上海举办。
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就是这样实现的。
机器学习需要程序员提供答案和数据,给答案打上标签,在数据的配合之下,机器会自己研究出规则。
,而不再需要程序员自己去定义复杂的规则。这样会变得更加智能化,在能检测简单的运动状态的同时,也能够检测出向打高尔夫这样难以用规则去判断的复杂的运动状态。
在学习新的事物时,我们的大脑往往是先得到答案和数据,从而总结出经验规律,这也是机器学习所想要实现的。在玩井字棋(如下图所示),一开始我们只是了解这个游戏的规则和玩法,但是如何赢得比赛就需要数盘的游戏经历,从中总结出经验。
机器学习就是在模仿人类,通过大量的数据和标签,得到规则,从而解决问题。让机器像人一样学习,这是机器学习所要走的第一步。
代码实践( 付弋真主讲 )
数字之间关系
之间存在关系。将数字提供给机器,希望机器像人脑一样学习,从而给出数字之间的关系。
。我们在看到这些数字之后,大脑会尝试去找出一些规律,利用我们所拥有的数学经验,进行猜测,猜测的验证结果是正确,所以得到了这个方程式。那通过机器学习如何做到这一点呢?
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])) 复制代码
结果如下:
,因为神经网络存在很多种可能性,机器给出的是一个预测的结果而不是一个准确无误的结果。
识别不同的衣服
上图中有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% 。神经网络可以通过更多的训练,从而提高准确率。
以上就是本次演讲的全部内容,希望对大家有所帮助
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 移动开发者的后端开发入门体验
- 写给Android开发者的Java 8简单入门教程
- 第216期:写给 Android 开发者的 Java 8 简单入门教程
- 与 JOSE 战斗的日子 - 写给 iOS 开发者的密码学入门手册 (实践)
- 让开发者专注于应用开发,OpenCenter 3.0 开发者预览版发布
- 让开发者专注于应用开发,OpenCenter 3.0 开发者预览版发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Code Reading
Diomidis Spinellis / Addison-Wesley Professional / 2003-06-06 / USD 64.99
This book is a unique and essential reference that focuses upon the reading and comprehension of existing software code. While code reading is an important task faced by the vast majority of students,......一起来看看 《Code Reading》 这本书的介绍吧!