题外话:第二次纯手打编辑博客啦!
(摘自百度百科:)
AI概念:
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
机器学习:
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、
逼近论、
凸分析、
算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是
人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
深度学习:
深度学习的概念由Hinton等人于2006年提出。基于深度置信网络(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。
[1]
深度学习是机器学习中一种基于对数据进行
表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个
像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,
人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取
特征。
同
机器学习方法一样,深度机器学习方法也有
监督学习与无监督学习之分.不同的学习框架下建立的学习模型很是不同.例如,
卷积神经网络(Convolutional neural networks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度
置信网(Deep Belief Nets,简称DBNs)就是一种无监督学习下的机器学习模型。
切入正题:作为一个还未入门的小白来说的我,一直认为,人工智能很高大上!下面就讲一下我从完全不懂AI到逐渐了解的过程吧
一开始是什么都不懂,不知道自己的学习路线,也完全不知道人工智能包括一些什么东西,就只能自己问度娘,虽然现在还是一知半解吧!首先呢讲一下我们要进军AI领域我们应该具备一些什么基础:首先需要会一门编程语言(我个人推荐python语言,因为python的库很多)
我个人就是从python的库开始了解AI的,首先了解numpy ,
matplotlib这两个库
numpy:
一个用python实现的科学计算包。包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或
Matlab等所做的任务。
matplotlib:我个人就认为是个画图用的。。。。就不给你们专业的讲了
然后,慢慢的接触就会发现我们还是先从机器学习入手比较好,毕竟AI领域太宽了,一时半会儿不知道如何下手,深度学习呢它只能算是机器学习的一个子项目,很多东西还是需要先搞清楚机器学习
然后从网上入手一份
邹博老师的机器学习视频课程观看,每一节课比较长(一般两个多小时。。容易犯困,里面很多数学公式看不懂)所以在此提出,我们还需要补一下高数,概率论,线性代数
废话不多说直接上个干货,我自己写的一个最简单的一元一次线性回归函数:
import
numpy
as
np
import
tensorflow
as
tf
import
matplotlib
as
mpl
import
matplotlib.pyplot
as
plt
#从-0.5到0.5之间生成20个随机点
x_data = np.linspace(-
0.5
,
0.5
,
20
)[:, np.newaxis]
y_data = x_data +
1
plt.figure()
mpl.rcParams[
'font.sans-serif'
] = [
u'SimHei'
]
mpl.rcParams[
'axes.unicode_minus'
] =
False
plt.plot(x_data,y_data,
'r-'
,x_data,y_data,
'go'
,
lw
=
1
)
plt.title(
u'一元一次回归函数'
,
fontsize
=
18
)
plt.xlabel(
'X'
,
fontsize
=
15
)
plt.ylabel(
'Y(x)'
,
fontsize
=
15
)
plt.grid(
True
,
ls
=
":"
)
plt.show()
结果:
只是希望没入门的小伙伴不要一头乱撞。。。
同时也希望有大佬能给出指点。。。。。。。
本期期望:对AI领域有一个大致的了解,学会画一个简单的二维图形!
(update:
感觉上一个干货不详细,东西太少,注释太少再来一个吧,稍微带一点numpy的函数:
import numpy as np
import matplotlib.pyplot as plt x = np.array([30,35,37, 59, 70, 76, 88, 100]).astype(np.float32) print("x=:",x) y = np.array([1100, 1423,1377,1800,2304,2588,3495,4839]).astype(np.float32) print("====="*30) print("y=:",y) plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 x_max = max(x) x_min = min(x) y_max = max(y) y_min = min(y) #实际算法 for i in range(0,len(x)): x[i] = (x[i] - x_min)/(x_max - x_min) y[i] = (y[i] - y_min)/(y_max - y_min) print("****"*30) print("new(x):%s \nnew(y):%s"%(x,y)) a = 1 b = -0.15 #X轴与Y轴 y_ , x_ = np.array([0,1]),np.array([0,1]) #回归方程式 yp = a*x +b r = sum(np.square(np.round(yp-y,4)))#square取平方 print("****"*30) #就是新的x减掉新的y保留小数点后4位 print(np.round(yp-y,4)) print("****"*30) print(np.square(np.round(yp-y,4))) print(r/16) plt.scatter(x,y) plt.xlabel(u"X") plt.ylabel(u"Y") plt.plot(x,yp,"r-",color='green') plt.show() #程序运行5秒 #plt.pause(5)结果:
控制台输出:
x=: [ 30. 35. 37. 59. 70. 76. 88. 100.]
==================================================================================================
y=: [ 1100. 1423. 1377. 1800. 2304. 2588. 3495. 4839.]
**************************************************************************************************
new(x):[ 0. 0.07142857 0.1 0.41428572 0.5714286 0.65714288
0.82857144 1. ]
new(y):[ 0. 0.08638673 0.07408398 0.18721583 0.32201123 0.39796737
0.64054561 1. ]
**************************************************************************************************
[-0.15000001 -0.16500001 -0.1241 0.0771 0.0994 0.1092 0.038
-0.15000001]
**************************************************************************************************
[ 0.0225 0.027225 0.01540081 0.00594441 0.00988036 0.01192464
0.001444 0.0225 ]
0.00730120158551
==================================================================================================
y=: [ 1100. 1423. 1377. 1800. 2304. 2588. 3495. 4839.]
**************************************************************************************************
new(x):[ 0. 0.07142857 0.1 0.41428572 0.5714286 0.65714288
0.82857144 1. ]
new(y):[ 0. 0.08638673 0.07408398 0.18721583 0.32201123 0.39796737
0.64054561 1. ]
**************************************************************************************************
[-0.15000001 -0.16500001 -0.1241 0.0771 0.0994 0.1092 0.038
-0.15000001]
**************************************************************************************************
[ 0.0225 0.027225 0.01540081 0.00594441 0.00988036 0.01192464
0.001444 0.0225 ]
0.00730120158551