前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初识人工智能

初识人工智能

作者头像
小闫同学啊
发布2019-07-18 15:36:13
9820
发布2019-07-18 15:36:13
举报
文章被收录于专栏:小闫笔记

正文共: 4401 字 5图 预计阅读时间: 12分钟

1.机器学习简单了解

刚开始接触人工智能的时候,大家肯定看到了一些名词:人工智能、深度学习、机器学习...what??哈哈,先来简单的给大家解释一下这三者的区别,再来谈论其他的问题。说的简单一点,机器学习是人工智能的一个实现途径,深度学习则是机器学习的一个方法发展而来。

人工智能是一个庞大的系统,它有很多的分支,比如计算机视觉、语音识别、文本挖掘、机器翻译、机器人这些。这些在生活中大家也经常使用,比如面部识别、谷歌翻译、小机器人等等这些。它们都是不同的分支,但同属于人工智能。

人工智能必备三要素:数据、算法、计算力。这也就是为什么人工智能如此火爆,但是过了许久,人才缺口仍然如此巨大,数学能力是一道难以逾越的门槛。

那么我们先从机器学习入手,开始了解人工智能吧。机器学习是从数据自动分析获得模型,并利用模型对未知数据进行预测。它的工作流程是:获取数据、数据基本处理、特征工程、机器学习(模型训练)、模型评估。

特征工程:使用专业背等知识,处理数据,使得数据更容易被机器识别。

2.机器学习算法

2.1 监督学习

输入数据是由输入特征值和目标值所组成。当输出的是一个连续的值的时候,我们称之为回归;输出的是有限个离散值的时候,称之为分类

2.2 无监督学习

输入数据是由输入特征值所组成。数据只有特征值,无目标值。

2.3 半监督学习

数据,部分是特征值+目标值,部分是只有特征值。

2.4 强化学习

数据,是一个动态的过程,每一次的输出,并不能立刻知道结果的正误。

3.Jupyter Notebook使用(Linux)

1.打开界面(输入完命令会直接启动浏览器):

代码语言:javascript
复制
jupyter notebook

2.和vim类似,jupyter分为编辑模式和命令模式。

3.命令模式下,回车或者鼠标双击cell进入编辑模式。

cell:一对In Out会话被视作一个代码单元,称为cell

4.编辑模式下按esc键退出编辑,进入命令模式。

5.常用的快捷键(命令模式下):

代码语言:javascript
复制
y:cell切换到Code模式,也就是可以写代码了。
m:cell切换到Markdown模式,可以编写Markdown笔记。
a:在当前cell的上面添加cell
b:在当前cell的下面添加cell
dd:删除当前cell

6.其他快捷键:

代码语言:javascript
复制
Shift+Enter,执行本单元代码,并跳转到下一单元
Ctrl+Enter,执行本单元代码,留在本单元

4.Matplotib的简单使用

4.1 Matplotlib三层结构

4.1.1 容器层

Canvas:画板--底层已经包含,不需要关注

figure:画布--在每次使用,都需要实例化

axes:坐标系--申明图像的绘制区域

4.1.2 辅助显示层

声明需要绘制的x轴,y轴,标题...

4.1.3 图像层

声明需要绘制哪些图像(plot,scatter, bar...)

plot:折线图 hist:直方图 pie:饼图 bar:柱状图

4.2 基本流程

代码语言:javascript
复制
import matplotlib.pyplot as plt
# 1.创建画布
plt.figure(figsize=(20,8), dpi=100)

# 2.绘制图像
x = [1,2,3]
y = [4,5,6]
plt.plot(x, y)

# 保存图片到指定路径
plt.savefig("test.png")

# 3.显示图像
plt.show()

figsize:指定图的长宽 dpi:图像的清晰度 注意:保存图片操作一定放到show之前。否则会保存一个空白图片。

4.3 一些常用功能

1.添加x,y刻度

代码语言:javascript
复制
plt.xticks()
plt.yticks()

注意:里面传入的第一个值,必须是数字,不能是字符串,如果要显示字符串,需要进行替换

2.添加网格显示

代码语言:javascript
复制
plt.grid(True, linestyle="**", alpha=0.5)

True -- 是否显示网格 linestyle -- 线的形状 alpha -- 线的透明度

3.一个图像,多次plot:直接进行数据传输,使用。

4.显示图例

代码语言:javascript
复制
plt.legend(loc="best")

loc -- 图例显示位置

5.多个坐标系图形绘制

代码语言:javascript
复制
plt.subplots(nrows=, ncols=)

nrows -- 几行 ncols -- 几列

4.4 案例:显示温度变化状况

代码语言:javascript
复制
# 需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度
# 初次完成
# 0.构造数据
x = range(60)
y = [random.uniform(15, 18) for i in x]

# 1.创建画布
plt.figure(figsize=(20, 8))

# 2.图像绘制
plt.plot(x, y)

# 2.1 添加x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)

plt.xticks(x[::5], x_ticks_label[::5], fontsize=20)
plt.yticks(y_ticks[::5])

# 2.2 添加网格显示
plt.grid(True, linestyle="--", alpha=0.5)

# 2.3 添加x,y轴描述和标题
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点--12点温度变化图", fontsize=25)

# 3.显示
plt.show()

4.5 案例:多个坐标系显示-plt.subplots(面向对象的画图方法)

代码语言:javascript
复制
# 需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度
# 多个axes
# 0.构造数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1, 14) for i in x]

# 1.创建画布
# plt.figure(figsize=(20, 8))
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=100)

# 2.图像绘制
# plt.plot(x, y_shanghai, label="上海")
# plt.plot(x, y_beijing, label="北京", linestyle="--", color="r")
axes[0].plot(x, y_shanghai, label="上海")
axes[1].plot(x, y_beijing, label="北京", linestyle="--", color="r")

# 2.1 添加x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)

# plt.xticks(x[::5], x_ticks_label[::5])
# plt.yticks(y_ticks[::5])
axes[0].set_xticks(x[::5], x_ticks_label[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::8])
axes[1].set_xticks(x[::5], x_ticks_label[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::8])


# 2.2 添加网格显示
# plt.grid(True, linestyle="--", alpha=0.5)
axes[0].grid(True, linestyle="--", alpha=0.5)
axes[1].grid(True, linestyle="--", alpha=0.5)

# 2.3 添加x,y轴描述和标题
# plt.xlabel("时间")
# plt.ylabel("温度")
# plt.title("中午11点--12点温度变化图", fontsize=25)
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_title("上海中午11点--12点温度变化图", fontsize=25)
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_title("北京中午11点--12点温度变化图", fontsize=25)

# 2.4 显示图例
# plt.legend(loc=0)
axes[0].legend(loc=0)
axes[1].legend(loc=0)

# 3.显示
plt.show()

日常问题解决

1 pip下载包速度慢解决

Linux中大家使用pip命令进行安装时,会发现下载速度奇慢!!按照网上的教程更换国内的源,发现还是不行。后来发现了原因,大家从设置里面修改后的源是不适用于pip安装的。如果想pip安装包的时候下载速度快一点,按照下面的命令进行修改即可:

1.先在主目录下创建 .pip目录,然后在目录中创建 pip.conf文件。

代码语言:javascript
复制
mkdir ~/.pip
vim ~/.pip/pip.conf

2.在打开的文件中编写如下的内容:

代码语言:javascript
复制
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

将pip的源更换为清华的镜像源。 参考文献:https://blog.csdn.net/YZXnuaa/article/details/79710673

3.保存退出即可。

2 GPU上适合运行计算密集型的程序和易于并行的程序。

CPU是中央处理器,内部结构十分复杂,有复杂的控制逻辑和诸多优化电路,计算能力只是CPU的一小部分功能。而GPU便是专门为计算而生了,GPU加速计算可以将应用程序计算密集部分的工作转到GPU上,CPU就可以空出更多时间处理其他程序。这样一来,应用程序的运行速度就快的多了。CPU适合IO密集型,而GPU适合计算密集型。平时经常玩游戏的小伙伴肯定深有感触,游戏对GPU要求很高。

3 创建虚拟环境

创建python3的虚拟环境:

代码语言:javascript
复制
mkvirtualenv 虚拟环境名 -p python3

删除虚拟环境:

代码语言:javascript
复制
rmvirtualenv 虚拟环境名

进入虚拟环境:

代码语言:javascript
复制
workon 虚拟环境名

查看所有虚拟环境:

代码语言:javascript
复制
workon

退出虚拟环境:

代码语言:javascript
复制
deactivate

优质文章推荐:

公众号使用指南

redis操作命令总结

前端中那些让你头疼的英文单词

Flask框架重点知识总结回顾

项目重点知识点详解

难点理解&面试题问答

flask框架中的一些常见问题

团队开发注意事项

浅谈密码加密

Django框架中的英文单词

Django中数据库的相关操作

DRF框架中的英文单词

重点内容回顾-DRF

Django相关知识点回顾

美多商城项目导航帖

项目重要技术点介绍

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈技术精选 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.机器学习简单了解
  • 2.机器学习算法
    • 2.1 监督学习
      • 2.2 无监督学习
        • 2.3 半监督学习
          • 2.4 强化学习
          • 3.Jupyter Notebook使用(Linux)
          • 4.Matplotib的简单使用
            • 4.1 Matplotlib三层结构
              • 4.1.1 容器层
              • 4.1.2 辅助显示层
              • 4.1.3 图像层
            • 4.2 基本流程
              • 4.3 一些常用功能
                • 4.4 案例:显示温度变化状况
                  • 4.5 案例:多个坐标系显示-plt.subplots(面向对象的画图方法)
                  • 日常问题解决
                    • 1 pip下载包速度慢解决
                      • 2 GPU上适合运行计算密集型的程序和易于并行的程序。
                        • 3 创建虚拟环境
                        相关产品与服务
                        语音识别
                        腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档