文章目录
机器学习与深度学习
什么是机器学习
机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
机器学习的两大任务:分类、回归。
分类
基于四种特征的鸟物种分类表:
假定我们可以得到所需的全部特征信息,该如何判断飞入进食器的鸟是不是象牙喙啄木鸟呢?这个任务就是分类。
回归
机器学习的另一项任务是回归,它主要用于预测数值型数据。
例如数据拟合曲线:通过给定数据点的最优拟合曲线。分类和回归都属于监督学习(学习数据的答案已知)。
泛化
机器学习通过学习已有的信息,来对未知的信息进行推断,这个过程称为泛化。
深度学习
深度学习是机器学习的一个分支领域:它是从数据中学习表示的一种新方法,强调从连续的层(layer)中进行学习,这些层对应于越来越有意义的表示。
“深度学习”中的“深度”指的并不是利用这种方法所获取的更深层次的理解,而是指一系列连续的表示层。数据模型中包含多少层,这被称为模型的深度(depth)。
如何用深度学习进行图像识别
预训练模型
解决上述问题的一个可行方法是,使用专业团队预先训练好的模型,在别人成熟的模型的基础上工作。分为2种情形:
- 直接使用预训练模型,最简单的方式,但是有局限性,例如,这个模型只能识别猫和狗的话,你想识别马就不行了。
- 在预训练模型的基础上,使用自己的数据继续训练,这种方式也称为迁移学习。
人脸检测
# -*- coding: utf-8 -*-
import paddlehub as hub
test_img_path = "test_face_detection1.jpg"
# 加载预训练模型
module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_640")
input_dict = {
"image": [test_img_path]}
# 人脸检测预测
results = module.face_detection(data=input_dict)
for result in results:
print(result) # 结果是检测到的脸的矩形信息
# 在图上绘制矩形标注人脸
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw
plt.figure(figsize=(10, 10)) # 设置画布大小
im = Image.open(test_img_path)
draw = ImageDraw.Draw(im