“人生苦短,我用Python。”
这是Python在自身宣传和推广中使用的口号。对于相关研究人员,最直接最简洁的需求就是将自己的点子从纸面进化到可以运行的计算机代码,在这个过程中所需花费的精力越小越好。
Python完全可以满足这个需求,首先,在计算机代码的编写和实现过程中,Python简洁的语言设计本身可以帮助用户避开没必要的陷阱,减少变量声明,随用随写,无须对内存进行释放,这些都极大地帮助了用户编写出需要的程序。
其次,Python的社区开发成熟,有非常多的第三方类库可以使用。在本章后面还会介绍NumPy、PIL以及threading这三个主要的类库,这些开源的算法类库在程序编写过程中会起到极大的作用。
最后,相对于其他语言,Python有较高的运行效率,而且得益于Python开发人员的不懈努力,Python友好的接口库甚至可以加速程序的运行效率,而无须去了解底层的运行机制。
Python是机器学习的首选开发语言,Anaconda是最常用的、集成了大量科学计算类库的Python标准安装包。如果使用Anaconda,那么第三方库的安装会比较方便,各个库之间的依赖也会维护得很好。因此,这里推荐安装Anaconda来替代Python。
Anaconda官方的下载网址是https://www.anaconda.com/distribution/,页面如图1.2所示。
图1.2
目前提供的是集成了Python 3.9版本的Anaconda下载,下载完成后得到的文件是Anaconda3-2021.11-Windows-x86_64.exe,直接运行即可进入安装过程。安装完成以后,在Windows主菜单上如果出现如图1.3所示的菜单结构,则说明安装正确。
图1.3
依次单击“开始→所有程序→Anaconda3(64-bit)→Anaconda Prompt(Anacoda3)”菜单命令,可以打开Anaconda Prompt控制台。它与CMD控制台类似,输入命令就可以控制和配置Python。在Anaconda中最常用的是conda命令,该命令可以执行一些基本操作。
在控制台中输入“python”,若安装正确,则会打印出版本号以及控制符号。在控制台提示符后输入代码:
print("hello Python")
输出结果如图1.4所示。
图1.4
使用Anaconda的好处在于它能够很方便地安装和使用大量第三方类库。查看已安装的第三方类库的命令如下:
conda list
如果此时命令行还在>>>状态,可以输入“exit()”退出。
在Anaconda Prompt控制台中输入“conda list”命令,结果如图1.5所示。
图1.5
Anaconda中使用conda命令进行操作的方法还有很多,其中最重要的是安装第三方类库。注意,安装时必须“以管理员身份运行”Anaconda Prompt控制台,命令如下:
conda install name
这里的name是需要安装的第三方类库名,例如需要安装NumPy包(这个包已经安装过),那么输入的命令就是:
conda install numpy
运行结果如图1.6所示。注意窗口菜单标题的开头是“管理员”。
使用Anaconda的一个特别好处就是,默认安装好了大部分学习所需的第三类库,避免了用户在安装和使用某个特定类库时可能出现的依赖类库缺失的情况。
图1.6
和其他语言类似,Python程序的编写可以使用Windows自带的控制台进行,但是对于较复杂的算法工程来说,这种方式容易混淆相互之间的层级和交互文件。因此,在编写算法工程时,笔者建议使用专用的Python编译器PyCharm。
PyCharm的下载网址为http://www.jetbrains.com/pycharm/。
步骤01 进入Download页面后可以选择不同的版本——收费的专业版(Professional)和免费的社区版(Community),如图1.7所示。这里选择免费的社区版即可。
图1.7
步骤02 双击下载的文件,运行后进入安装界面,如图1.8所示。直接单击“Next”按钮,采用默认安装即可。
步骤03 在安装PyCharm 的过程中,需要对安装的位数进行选择,如图1.9所示。这里建议读者选择与已安装的Python相同位数的文件。
图1.8
图1.9
步骤04 最后单击“Finish”按钮完成安装,如图1.10所示。
图1.10
使用PyCharm创建程序的操作步骤如下:
步骤01
单击桌面上新生成的
图标进入PyCharm程序界面,首先是第一次启动的定位,如图1.11所示。这里是对程序存储的定位,一般建议选择第2个“Do not import settings”。
步骤02 单击“OK”按钮后进入PyChrarm配置窗口,如图1.12所示。
图1.11
图1.12
步骤03 在配置窗口上可以对PyCharm的界面进行配置,选择自己的使用风格。如果对其不熟悉,直接使用默认配置即可,如图1.13所示。
图1.13
步骤04 在图1.12所示的界面上,单击“New Project”按钮创建一个新的工程,这里建议新建一个PyCharm的工程文件,如图1.14所示。
图1.14
步骤05 右击新建的工程名PyCharm,依次选择“New→Python File”菜单命令,新建一个helloworld.py文件,如图1.15所示。
图1.15
步骤06 单击菜单栏中的“Run→run ‘helloword’”,或者直接右击helloworld.py文件名,在弹出的快捷菜单中选择“run ‘helloword’”。如果成功输出“hello world”,那么恭喜你,Python与PyCharm 的配置完成了!
对于Python科学计算来说,最简单的想法就是将数学公式直接表达成程序语言,可以说Python满足了这个想法。本小节将使用Python实现一个深度学习中最常见的函数——softmax函数。至于这个函数的作用,现在不加以说明,这里只是简单尝试一下这个函数代码的编写。
softmax函数的计算公式如下:
其中, V i 是长度为 j 的数列 V 中的一个数。带入softmax的结果实际上就是先对每一个 V i 计算以e为底、 V i 为幂次项的值,然后除以所有项之和进行归一化,之后每个 V i 就可以解释成:在观察到的数据集类别中,特定的 V i 属于某个类别的概率或者称作似然(Likelihood)。
提示: softmax函数用以解决概率计算中概率结果大而占绝对优势的问题。例如,函数计算结果中有两个值a和b,且a>b,如果简单地以值的大小为单位进行衡量,那么在后续的使用过程中a永远被选用,而b由于数值较小而不被选用;但是,有时候也需要使用数值小的b,那么softmax函数就可以解决这个问题。
softmax函数按照概率选择a和b,由于a的概率值大于b,所以在计算时a经常会被选中,而b由于概率较小,所以选中的可能性也较小,但是也有概率被选中。
softmax函数的代码如下:
import numpy def softmax(inMatrix): m,n = numpy.shape(inMatrix) outMatrix = numpy.mat(numpy.zeros((m,n))) soft_sum = 0 for idx in range(0,n): outMatrix[0,idx] = math.exp(inMatrix[0,idx]) soft_sum += outMatrix[0,idx] for idx in range(0,n): outMatrix[0,idx] = outMatrix[0,idx] / soft_sum return outMatrix
当传入一个数列后,分别计算每个数值所对应的指数函数值,之后将其相加后计算每个数值在数值和中的概率。例如:
a = numpy.arry([[1,2,1,2,1,1,3]])
结果如下:
[[ 0.05943317 0.16155612 0.05943317 0.16155612 0.05943317 0.05943317 0.43915506]]