感知机算法面试问题汇总

感知机作为深度学习的基础,原理应该说是很简单的。相关讲解推荐北大小天才的 https://www.pkudodo.com/2018/11/18/1-4/

关于感知机没有太多面试需要问的,网上面经也少有相关问题。但我最后决定写一下是有一些细节问题值得思考。

 

1、单层感知机无法解决异或(非线性)问题,那多层感知机(MLP)没有sigmoid激活函数的情况下能解决异或问题吗?

      可以的。

      《统计学习方法》中讲感知机时一直在使用sign作为激活函数。该函数已经引入了非线性,所以理论上使用sign激活函数的MLP就可以逼近任意非线性函数。让我们抄一下这篇博文的例子,来看使用sign激活函数的多层感知机解决异或问题。   

import numpy as np
 
def yufei(x1,x2):
    """与非门的实现"""
    x=np.array([x1,x2])
    w=np.array([-0.5,-0.5])
    b=0.7
    value=np.sum(w*x)+b
    if value<=0:
        return 0
    else:
        return 1
 
def huo(x1,x2):
    """或门的实现,只有参数不一样"""
    x=np.array([x1,x2])
    w=np.array([0.5,0.5])
    b=-0.2
    value=np.sum(w*x)+b
    if value<=0:
        return 0
    else:
        return 1
 
def yu(x1,x2):
    """与门的实现,只有参数不一样"""
    x=np.array([x1,x2])
    w=np.array([0.5,0.5])
    b=-0.7
    value=np.sum(w*x)+b
    if value<=0:
        return 0
    else:
        return 1  
 
def yihuo(x1,x2):
    """异或门的实现"""
    s1=yufei(x1,x2)
    s2=huo(x1,x2)
    y=yu(s1,s2)
    return y
 
yihuo(0,0)  #输出0
yihuo(1,0)  #输出1
yihuo(0,1)  #输出1
yihuo(1,1)  #输出0

2、问题来了,既然多层感知机用sign就能解决非线性问题,那要sigmoid函数干嘛呢?

     这个就可以更广泛点涉及到不同激活函数的优缺点了,如sign, sigmoid, tanh, ReLU ....

     首先说一下激活函数需要满足的条件:1)非线性,处处可导(也可个别点不可导)

                                                                   2)导数尽量简单,这样方便求解。

                                                                   3)导数值域范围固定,以免梯度消失或者爆炸。

     而sigmoid相比与sign效果更好,因此就用它了。但它也有缺点,因此后来有其他激活函数。         

 

3、感知机在学习权重w和偏置b的时候使用随机梯度下降(SGD),那SGD和BP有什么区别呢?

      在《Neural Network and Deep Learning》中写过      

我们看到了神经⽹络如何使⽤梯度下降算法来学习他们⾃⾝的权重和偏置。但是,这⾥还留下了⼀个问题:
我们并没有讨论如何计算代价函数的梯度。这是很⼤的缺失!在本章,我们会解释计算这些梯度的快速算法,
也就是反向传播(backpropagation)。

     所以按这个逻辑来说。SGD指的是利用梯度下降更新权重和偏置的方法。而BP是快速计算梯度的方法。

     所以BP之前还有其他求梯度方法吗?答案是有的,如正向直接求导。这在一两层网络中完全是可行的。如本章中的感知机就是直接对loss求导。但当网络层数变多时,就到了BP的用武之地。这部分的深入理解可以推荐这篇翻译文章

 

4、感知机是二类分类的线性分类模型,那和多分类和多标签分类有什么区别?

      《统计学习方法》中关于相关概念有如下定义:

       分类问题:在监督学习中,当输出变量Y取有限个离散值时,预测问题变成为分类问题。

       二类分类:当分类的类别为两个(0/1; 是/否; -1/+1)时,为二类分类问题。因此私以为并没有所谓的单分类问题。

                         eg:一个包含苹果的图片,将其分为是/否包含苹果

      多类分类:当分类的类别为多个时,为多类分类问题。

                         eg:一个水果的图片,将其分为苹果、香蕉、桃子

      多标签分类:一个样本存在多个类别,如(自己写的)   

                         eg: 一堆水果的照片,区分其中有哪些水果

      这个小问题在仔细研究交叉熵是会有用到,因此此处根据个人看法分析一下。   

 

5、感知机和SVM区别

      《统计学习方法》中关于SVM定义有这样一句话:SVM是种二类分类模型。它的基本模型是定义在特征空间上间隔最大的线性分类器,间隔最大使他有别于感知机

 

 

良心博主推送福利: 《Neural Network and Deep Learning》中文版免费下载

这本书受欢迎程度是公认的,看上面👆链接的评论就知道了。有用的话点个赞吧~

### AI 方向常见面试汇总 以下是关于人工智能 (AI) 领域常见的面试目,涵盖了 Transformer、自然语言处理以及其他相关内容。 #### 一、基础知识 1. **什么是神经网络?其基本组成单元是什么?** 神经网络是一种模仿生物神经系统结构和功能的计算模型。它由多个层构成,每一层包含若干个神经元节点。这些节点通过加权连接传递信号并执行非线性变换[^3]。 2. **解释梯度下降法及其变体的作用机制。** 梯度下降法是一种优化算法,用于最小化损失函数。它的核心思想是沿着负梯度方向更新参数以逐步逼近最优解。常用变体包括随机梯度下降(SGD),批量梯度下降(Batch Gradient Descent)以及Adam等自适应学习率方法。 #### 二、Transformer 及相关技术 1. **描述一下 Transformer 的工作原理。** Transformer 是一种基于注意力机制(Attention Mechanism)构建的序列到序列(Seq2Seq)模型架构。相比传统的RNN/LSTM, 它完全摒弃了循环操作而采用全并行化的编码器-解码器框架来提升训练效率与性能表现[^1]。 2. **为什么 Self-Attention 能够提高 NLP 表现?** 自注意(Self-Attention 或者称为内部注意力)允许模型在同一时间步上关注输入的不同部分之间的关系,从而捕捉更丰富的上下文信息而不受距离限制的影响。这种特性对于理解长依赖(Long Dependency)尤为重要。 #### 三、应用层面的问题 1. **如何评估一个机器翻译系统的质量?有哪些指标可以用来衡量?** 常见评价标准包括BLEU分数(Bilingual Evaluation Understudy),METEOR得分(Metric for Evaluation of Translation with Explicit ORdering),ROUGE-L比率(Rank-Oriented Unigram Goodness Estimate based on Longest Common Subsequence)。 2. **针对某个具体应用场景设计解决方案时需要注意哪些方面?举例说明。** 设计方案需考虑数据预处理方式、特征提取手段、选用合适的算法模型以及后期效果验证流程等多个环节。比如,在医疗影像分析领域可能要特别重视图像增强技术和标注准确性等问题;而在推荐系统里则更加侧重于冷启动问题解决策略等方面的研究探讨。 ```python import torch.nn as nn class SimpleMLP(nn.Module): def __init__(self, input_dim=784, hidden_dim=128, output_dim=10): super().__init__() self.fc1 = nn.Linear(input_dim, hidden_dim) self.relu = nn.ReLU() self.fc2 = nn.Linear(hidden_dim, output_dim) def forward(self, x): out = self.fc1(x) out = self.relu(out) out = self.fc2(out) return out ``` 上述代码展示了一个简单的多层感知机实现过程作为例子之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值