文章目录
1.项目简介
本项目的功能如下:
即输入姓,输出最有可能的国家名 或 最有可能的K个国家名。
本文的重点为如何构建这个分类模型。
接下来,我将开始我的叙述。
2.前置知识
本部分将详细介绍本项目所需的两个核心概念,即多层感知机和卷积神经网络,有相关基础者可自行跳过。
其他机器学习基础知识例如损失函数、优化器等,我将放在下一节具体实现部分进行讲解。
另外,本部分为笔者自己的理解,若有错误,欢迎大家指出和交流。
在介绍本部分时,我将按照what,why的逻辑展开。
即:它是什么;为什么要使用它;
至于how部分,即如何使用它,我将在下一节结合具体代码进行介绍。
本部分目录如下:
- 2.1 单层感知机
- 2.2 多层感知机
- 2.3 卷积操作
- 2.4 卷积神经网络
2.1 单层感知机
what
单层感知机是机器学习中最为基础的方法之一,也可以认为是一种最为简单的神经网络,其模型结构与逻辑回归是一致的,都是多个输入,乘以权值求和再加上偏置,再经过激活函数得到输出,如下图所示。
我们可以认为其为一个线性函数:
S = ∑ i = 1 n x i w i S=\sum_{i=1}^{n} x_iw_i S=i=1∑nxiwi
若我们令S=0,即可构造一条直线:
∑ i = 1 n x i w i = 0 \sum_{i=1}^{n} x_iw_i=0 i=1∑nxiwi=0
利用这条直线,我们即可实现简单的二分类,如下图所示:
同时,我们可以发现,最终的输出并非S,而是S经过激活函数的结果。
那为什么要经过激活函数?我认为是受到了神经细胞的启发,即神经细胞只有收到的刺激足够大,才能产生兴奋。
但其实激活函数的最关键的作用是在于其非线性性质,这个将在下节多层感知机进行叙述。
why:
从上述描述可知。单层感知机通过对输入数据进行线性加权和阈值处理,可以实现简单的分类功能。
同时,其也引入了神经网络的概念。
故其虽然简单,且分类性能不强,但却是人工神经网络的重要基础模型之一。
2.2 多层感知机
what:
首先我们来看多层感知机的形象化表示:
(一般来说,其由输入层,隐层,输出层组成。隐层的数目任意。)
本图中激活函数未标出
通过观察,我们可以发现,其本质上就是多个单层感知机串联起来。
那么这么串联起来会有什么好处呢?以下面经典问题(异或)为例:
对于该问题,很明显,这是一个线性不可分问题,故通过单层感知机无法将不同类别的点分开。
但是,多层感知机却可以!!!为什么呢?请读者先思考,我将在why部分解答。
why:
其实上述问题的关键在于激活函数,试想一下,若没有激活函数,那么两层的感知机可表示为:
F ( X ) = W 2 ∗ ( W 1 ∗ X ) F(X)=W_2*(W_1*X) F(X)=W2∗(W1∗X)
但此时,我们应该能找到一个 W 3 W_3 W3使得:
F ( X ) = W 3 ∗ X = W 2 ∗ ( W 1 ∗ X ) F(X)=W_3*X=W_2*(W_1*X) F(X)=W3∗X=W2