机器学习入门篇

题外话:第二次纯手打编辑博客啦!
以下内容摘自百度百科:

AI概念:
  •   人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
机器学习:
  •   机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能
      它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
深度学习:
  •   深度学习的概念由Hinton等人于2006年提出。基于深度置信网络(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。[1]
      深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
      深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。[2]
      同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分.不同的学习框架下建立的学习模型很是不同.例如,卷积神经网络(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:

  我个人就认为是个画图用的。。。。就不给你们专业的讲了

  然后从网上入手一份邹博老师的机器学习视频课程观看,每一节课比较长(一般两个多小时。。容易犯困,里面很多数学公式看不懂)所以在此提出,我们还需要补一下高数,概率论,线性代数
  废话不多说直接上个干货,我自己写的一个最简单的一元一次线性回归函数:

import numpy as np
import tensorflow as tf
import matplotlib as mpl
import matplotlibpyplot 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()

结果:
机器学习入门篇_第1张图片

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)

结果:
机器学习入门篇_第2张图片

控制台输出:
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

机器学习入门篇_第3张图片

你可能感兴趣的:(机器学习)