机器学习 之 keras

摘自keras中文文档:
http://keras-cn.readthedocs.io/en/latest/for_beginners/concepts/#_5

对新手友好的小说明

虽然这不是我们应该做的工作,但为了体现本教程对新手的友好,我们在这里简单列一下使用keras需要的先行知识。稍有经验的研究者或开发者请忽略本节,对于新手,我们建议在开始之前,确保你了解下面提到的术语的基本概念。如果你确实对某项内容不了解,请首先查阅相关资料,以免在未来使用中带来困惑。
学习教程:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138681965108490cb4c13182e472f8d87830f13be6e88000

关于Python

  1. 显然你应对Python有一定的熟悉,包括其基本语法,数据类型,语言特点等,如果你还不能使用Python进行程序设计,或不能避免Python中常见的一些小陷阱,或许你应该先去找个教程补充一下。
  2. 你应该有面向对象的概念,知道类、对象、封装、多态、继承、作用域等术语的含义。
  3. 你应该对Python的科学计算包和深度学习包有一定了解,这些包包含但不限于numpy, scipy, scikit-learn, pandas…
  4. 特别地,你需要了解什么是生成器函数(generator),以及如何编写生成器函数。什么是匿名函数(lambda)

关于深度学习

由于Keras是为深度学习设计的工具,我们这里只列举深度学习中的一些基本概念。请确保你对下面的概念有一定理解。

  1. 有监督学习,无监督学习,分类,聚类,回归
  2. 神经元模型,多层感知器,BP算法
  3. 目标函数(损失函数),激活函数,梯度下降法
  4. 全连接网络、卷积神经网络、递归神经网络
  5. 训练集,测试集,交叉验证,欠拟合,过拟合
  6. 数据规范化

个人见解:

就本人而言,对于这些概念理解得只是浅显,但这并不妨碍我学习keras

Python

  1. Python的基础语法,入门非常简单,基本上能够去网上刷编程题就差不多了.推荐pat,可以刷Python3.6
  2. 类、对象、封装、多态、继承、作用域,学过Python,java或者c++其中一门语言理解这个应该很轻松吧.
  3. 科学计算包和深度学习包,这个我还真没了解过,一边学习keras一边了解吧
  4. 生成器函数:g = (x * x for x in range(10)),迭代一个数生成一个数,节约大量空间; 匿名函数: Java里经常用的是匿名内部类,Python用的是匿名函数,理解lambda的同学,对这个应该很熟悉: f = lambda x:x**2

深度学习

1.有无监督学习:
http://www.mamicode.com/info-detail-864748.html

1). 有监督学习:分类和回归
2). 无监督学习:http://blog.youkuaiyun.com/american199062/article/details/51475006
3). 分类: http://blog.youkuaiyun.com/chl033/article/details/5204220
4). 回归: http://blog.youkuaiyun.com/viewcode/article/details/8794401

2.神经网络:
http://baike.baidu.com/link?url=zv4qwFA7-hbXNh7K3zgDHLiwFk5V5q-zXeqPXr2joOnWwZeSnvDatR2T9KHzerTp48Jaq_Uj1WXJ9oT5pbW0jTPGuNfb6XjTnBbWzZFmT0S9UN05mKLmZ8zWyFt0Jxb71SHawKT1NxxOFXj9A2IBpK

3.目标函数(损失函数): http://blog.youkuaiyun.com/google19890102/article/details/50522945
激活函数:http://blog.youkuaiyun.com/losteng/article/details/50833861
梯度下降法:http://m.blog.youkuaiyun.com/yhao2014/article/details/51554910

4.全连接网络、卷积神经网络、递归神经网络:
https://www.zhihu.com/question/34681168

5.训练集,测试集,交叉验证,欠拟合,过拟合
http://blog.youkuaiyun.com/er8cjiang/article/details/50981426
http://www.cnblogs.com/lanying/p/4035092.html

6.数据规范化:
http://blog.youkuaiyun.com/meoop/article/details/40931731

### 使用 Keras 进行机器学习的应用 #### 构建深度学习模型的基础流程 Keras 是一个用于快速实验的强大工具,其设计强调用户体验、模块化和可扩展性。为了展示 Keras 的功能,下面将介绍如何利用该库创建并训练一个简单的图像分类模型[^1]。 ```python from keras.models import Sequential from keras.layers import Dense, Flatten from keras.datasets import mnist import numpy as np # 加载 MNIST 数据集 (x_train, y_train), (x_test, y_test) = mnist.load_data() # 预处理输入数据 x_train = x_train.reshape(60000, 784).astype('float32') / 255 x_test = x_test.reshape(10000, 784).astype('float32') / 255 # 将标签转换为 one-hot 编码 num_classes = 10 y_train = keras.utils.to_categorical(y_train, num_classes) y_test = keras.utils.to_categorical(y_test, num_classes) # 创建顺序模型 model = Sequential() model.add(Flatten(input_shape=(28, 28))) model.add(Dense(128, activation='relu')) model.add(Dense(num_classes, activation='softmax')) # 编译模型 model.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.Adam(), metrics=['accuracy']) # 训练模型 batch_size = 128 epochs = 10 history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_split=0.2) # 测试模型性能 test_loss, test_acc = model.evaluate(x_test, y_test, verbose=0) print(f'Test accuracy: {test_acc}') ``` 这段代码展示了使用 Keras 来加载 MNIST 手写数字识别数据集,并定义了一个具有两层全连接层的神经网络结构。接着编译这个模型,指定了损失函数以及优化算法;最后通过调用 `fit` 方法完成对模型参数的学习过程[^4]。 除了上述基本操作外,还可以进一步探索更多高级特性,比如自定义回调机制来监视训练进度或保存最佳权重文件等[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值