机器学习(周志华) 第五章神经网络

关于周志华老师的《机器学习》这本书的学习笔记
记录学习过程
本博客记录Chapter5 神经网络

1 神经元模型

神经网络(neural networks):由具有适应性的简单单元组成的广泛并行互联的网络,他的组织能够模拟生物神经系统对真实世界物体所做出的交互反应

神经网络中最基本的成分是“神经元模型”,即上述定义中的“简单单元”。经典的M-P神经元模型如下图所示。其中,神经元(neural)接收到 n n n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过激活函数(activation function)处理以产生神经元的输出

image.png

理想中的激活函数如下图所示的阶跃函数,其将输入值映射为输出值0或1,1对神经元产生刺激,0对神经元产生抑制。但阶跃函数具有不连续、不光滑等缺点,因此实际中常用Sigmoid函数作为激活函数,它能在较大范围内变化的输入值挤压到 ( 0 , 1 ) (0,1) (0,1)之间也被称为“挤压函数”(squashing function),其公式如下:
s g n ( x ) = { 1 , x ≥ 0 0 , x ≤ 0 sgn(x)=\begin{cases} 1, x\ge 0\\ 0, x\le 0\\ \end{cases} sgn(x)={1,x00,x0

s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac{1}{1+e^{-x}} sigmoid(x)=1+ex1

image.png

将神经元按照一定的层次结构连接起来,就组成了神经网络。神经网络包含了许多参数的数学模型,这个模型是若干个函数相互嵌套代入所得。有效的神经网络模型大多以数学证明为支撑。

2 感知机与多层网络

感知机(perceptron)由两层神经元组成。输入层接受外界输入信号后传递给输出层,输出层是M-P神经元,也成为“阈值逻辑单元”(threshold logic unit)。能容易地实现与或非的运算。其中 y = f ( ∑ i w i x i − θ ) y=f(\sum_iw_ix_i-\theta) y=f(iwixiθ) f f f假设为阶跃函数。

  • 与运算: w 1 = 1 , w 2 = 1 , θ = 2 , 有 y = f ( x 1 + x 2 − 2 ) , 当 且 仅 当 x 1 = x 2 = 1 时 , y = 1 w_1=1,w_2=1,\theta=2,有y=f(x_1+x_2-2),当且仅当x_1=x_2=1时,y=1 w1=1,w2=1,θ=2,y=f(x1+x22)x1=x2=1y=1
  • 或运算: w 1 = 1 , w 2 = 1 , θ = 0.5 , 有 y = f ( x 1 + x 2 − 2 ) , 当 且 仅 当 x 1 = x 2 = 0 时 , y = 0 w_1=1,w_2=1,\theta=0.5,有y=f(x_1+x_2-2),当且仅当x_1=x_2=0时,y=0 w1=1,w2=1,θ=0.5,y=f(x1+x22)x1=x2=0y=0
  • 非运算: w 1 = − 0.6 , w 2 = 0 , θ = − 0.5 , 有 y = f ( x 1 + x 2 − 2 ) , 当 x 1 = 1 时 , y = 0 ; 当 x 1 = 0 时 , y = 1 w_1=-0.6,w_2=0,\theta=-0.5,有y=f(x_1+x_2-2),当x_1=1时,y=0;当x_1=0时,y=1 w1=0.6,w2=0,θ=0.5,y=f(x1+x22)x1=1y=0;x1=0y=1

image.png

当给定训练数据,权重 w i w_i wi以及阈值 θ \theta θ都可以通过学习得到。阈值可以看作一个固定输入为-1的“哑结点”(dummy node)所对应的连接权重 w n + 1 w_{n+1} wn+1。这样,权重和阈值的学习可以统一为权重的学习。感知机的学习规则如下:训练样例 ( x , y ) (\bold{x},y) (x,y),若当前感知机的输出为 y ^ \hat{y} y^,则感知机的权重调整为:
w i ← w i + Δ w i Δ w i = η ( y − y ^ ) x i w_i \leftarrow w_i+ \Delta w_i \\ \Delta w_i = \eta(y-\hat{y})x_i wiwi+ΔwiΔwi=η(yy^)xi
其中, η \eta η学习率,感知机对预测数据的错误的程度进行权重调整。实际中,感知机只有输出层神经元进行激活函数处理,即只用有一层功能神经元(functional neural),能解决的只有线性可分问题(与或非都是此类问题)。对于线性可分问题,感知机的学习过程一定会收敛,球的适当的权向量 w = ( w 1 ; w 2 ; … ; w n + 1 ) \bold w=(w_1;w_2;…;w_{n+1}) w=(w1;w2;;wn+1)。否则,感知机学习过程将会发生振荡 w \bold w w难以稳定,即使是异或这样简单的非线性可分问题也无法解决。

  • 异或:二进制中每一位进行异或运算,不同为1,相同为0,如 ( 0011 ) (0011) (0011) ( 1010 ) (1010) (1010)异或后是 ( 1001 ) (1001) (1001)

image.png
两层感知机可以解决异或问题,其在输入层与输出层之间添加一层神经元,称为隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。

多层前馈神经网络(multi-layer feedforward neural networks):每层神经元与下层神经元完全互连,神经元之间不存在同层连接,也不存在跨层连接

  • 输入层仅接受输入,不进行函数处理,隐层和输出层有激活函数,包含功能神经元。
  • 神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”(connection weight)以及每个功能神经元的阈值;即神经网络“学到的东西”,驯悍在连接权和阈值中。

image.png

3 误差逆传播算法(BP)

误差逆传播(error BackPropagation, BP)算法是最成功的神经网络学习算法,能有效地训练多层网络。

其算法原理

  • 假定训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , x i ∈ R d , y i ∈ R l D=\{(\bold x_1,\bold y_1), (\bold x_2,\bold y_2),…,(\bold x_m,\bold y_m) \},\bold x_i \in R^d, \bold y_i \in R^l D={(x1,y1),(x2,y2),,(xm,ym)},xiRd,yiRl,即输入由 d d d个属性描述,输出由 l l l个维实值向量描述。神经网络结构如图所示,拥有 d d d个输入神经元、 l l l个输出神经元、 q q q个隐层神经元的多层前馈网络结,其中输出层第 j j j个神经元的阈值用 θ j \theta_j θj表示,隐层第 h h h个神经元的阈值用 γ h \gamma_h γh表示。输入层第 i i i个神经元与隐层第 h h h个神经元之间的连接权为 v i h v_{ih} vih,隐层第 h h h个神经元与输出层第 j j j个神经元之间的连接权为 w h j w_{hj} whj。记隐层第 h h h个神经元接收到的输入为 α h = ∑ i = 1 d v i h x i \alpha_h= \sum_{i=1}^dv_{ih}x_i αh=i=1dvihxi,输出层第 j j j个神经元接收到的输入为 β j = ∑ i = 1 q w h j b h \beta_j=\sum_{i=1}^qw_{hj}b_h βj=i=1qwhjbh, 其中 b h b_h bh为隐层第 h h h个神经元的输出。假设隐层和输出层神经元都使用Sigmoid函数

image.png

  • 对训练例 ( x k , y k ) (\bold x_k, \bold y_k) (xk,yk),假定神经网络的输出 y k ^ = ( y ^ 1 k , y ^ 2 k , … , y ^ l k ) \hat{y_k}=(\hat y_1^k,\hat y_2^k,…,\hat y_l^k) yk^=(y^1k,y^2k,,y^lk),即
    y k ^ = f ( β j − θ j ) \hat{y_k}=f(\beta_j-\theta_j) yk^=f(βjθj)
    则网络在 ( x k , y k ) (\bold x_k, \bold y_k) (xk,yk)上的均方误差
    E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k=\frac{1}{2}\sum_{j=1}^l(\hat{y}_j^k-y_j^k)^2 Ek=21j=1l(y^jkyjk)2

  • 该网络共有 d q + q l + q + l = q ( d + l + 1 ) + l dq+ql+q+l=q(d+l+1)+l dq+ql+q+l=q(d+l+1)+l个参数需要确定,BP是一个迭代学习算法,每一轮迭代中采用广积的感知机学习规则对参数进行更新估计
    v ← v + Δ v v \leftarrow v+\Delta v vv+Δv

  • BP算法基于梯度下降策略(gradient descent):以目标的负梯度方向对参数进行调整。对误差 E k E_k Ek,给定学习率 η \eta η,有
    Δ w h j = − η ∂ E k ∂ w h j ∂ E k ∂ w h j = ∂ E k ∂ y ^ j k ⋅ ∂ y ^ j k ∂ β j ⋅ ∂ β j ∂ w h j \Delta w_{hj}=-\eta \frac{\partial E_k}{\partial w_{hj}}\\ \frac{\partial E_k}{\partial w_{hj}}=\frac{\partial E_k}{\partial \hat{y}_j^k}·\frac{\partial \hat y_j^k}{\partial \beta_j} ·\frac{\partial \beta_j}{\partial w_{hj}} Δwhj=ηwhjEkwhjEk=y^jkEkβjy^jkwhjβj
    根据 β j \beta_j βj的定义: ∂ β j ∂ w h j = b h \displaystyle \frac{\partial \beta_j}{\partial w_{hj}}=b_h whjβj=bh

    Sigmoid函数具有性质:
    f ′ ( x ) = f ( x ) [ 1 − f ( x ) ] f'(x)=f(x)[1-f(x)] f(x)=f(x)[1f(x)]
    因此:
    g j = − ( y ^ j k − y j k ) f ′ ( β j − θ j ) = y ^ j k ( 1 − y ^ j k ) ( y j k − y ^ j k ) g_j=-(\hat y_j^k-y_j^k)f'(\beta_j-\theta_j)=\hat y_j^k(1-\hat y_j^k)(y_j^k-\hat y_j^k) gj=(y^jkyjk)f(βjθj)=y^jk(1y^jk)(yjky^jk)
    将上述式子带入到 Δ w h j \Delta w_{hj} Δwhj
    Δ w h j = η g j b h \Delta w_{hj}=\eta g_j b_h Δwhj=ηgjbh
    类似可得:
    Δ θ j = − η g i Δ v i h = η e h x i Δ γ h = − η e h \Delta \theta_j=-\eta g_i\\ \Delta v_{ih} = \eta e_h x_i\\ \Delta \gamma_h=-\eta e_h Δθj=ηgiΔvih=ηehxiΔγh=ηeh
    其中,
    e h = − ∂ E k ∂ b h ⋅ ∂ b h ∂ α h = − ∑ i = 1 l ∂ E k ∂ β j ∂ β j ∂ b h f ′ ( α h − γ h ) = ∑ j = 1 l w h j g j f ′ ( α j − γ j ) = b h ( 1 − b h ) ∑ j = 1 l w h j g j e_h=-\frac{\partial E_k}{\partial b_h}·\frac{\partial b_h}{\partial \alpha_h}=-\sum_{i=1}^l \frac{\partial E_k}{\partial \beta_j} \frac{\partial \beta_j}{\partial b_h}f'(\alpha_h-\gamma_h)=\sum_{j=1}^lw_{hj}g_jf'(\alpha_j-\gamma_j)=b_h(1-b_h)\sum_{j=1}^lw_{hj}g_j eh=bhEkαhbh=i=1lβjEkbhβjf(αhγh)=j=1lwhjgjf(αjγj)=bh(1bh)j=1lwhjgj

  • 学习率 η ∈ ( 0 , 1 ) \eta \in (0,1) η(0,1)控制着算法每一轮迭代的更新步长,太小收敛速度会过慢,太大容易发生振荡。

BP算法流程

image.png

标准BP算法: 基于每个数据进行更新,参数更新频繁,而且对不同的样例进行更新的效果可能出现抵消现象。

累积BP算法: 直接针对累积误差最小化。读取整个训练集D一遍后才对参数进行更新,其参数更新频率较低,但累计误差下降到一定程度后,进一步下降会非常缓慢,这时候标准BP往往会更快获得较好的解。
min ⁡ E = 1 m ∑ i = 1 m E k \min E=\frac{1}{m}\sum_{i=1}^mE_k minE=m1i=1mEk
BP神经网络经常遭遇“过拟合”的现象,有两种解决方法:

  • 早停”(early stopping):将数据集分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证机用来估计误差,若训练集误差降低而测试集误差升高,则停止训练。

  • 正则化”(regularization):在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权和阈值的平方和,其中 λ \lambda λ用于经验误差和网络复杂度两项进行折中,通过交叉验证法估计。
    E = λ 1 m ∑ i = 1 m E k + ( 1 − λ ) ∑ i w i 2 E=\lambda \frac{1}{m}\sum_{i=1}^m E_k+(1-\lambda)\sum_i w_i^2 E=λm1i=1mEk+(1λ)iwi2

4 全局最小和局部极小

基于梯度的搜索是使用最广泛的参数寻优方法。

在此类方法中,我们从某些初始解出发,迭代寻找最优参数值。每次迭代中,我们计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。由于负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解。若误差函数在当前点的梯度为0,则达到局部极小,迭代停止。因此,该方法可能会陷入局部极小,无法达到全局最小

跳出“局部极小”的方法(大多是启发式算法,理论上缺乏保障):

  • 以多组不同参数值初始化神经网络,取误差最小的解作为参数。
  • 使用“模拟退火”,每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出局部极小,每步迭代过程中,接受“次优解”的该列表随着时间的推移而逐渐降低,从而保证算法稳定。
  • 随机梯度下降:在计算梯度时加入随机因素,所以即便陷入局部最小,计算出的梯度可能不为0,有机会跳出局部极小。

5 其他常见神经网络

5.1 RBF网络

RBF(Radial Basis Function,径向基函数)网络:单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,输出层是对隐层神经元输出的线性组合。高级径向基函数似如:
φ ( x ) = ∑ i = 1 q w i ρ ( x , c i ) ρ ( x , c i ) = e − β i ∣ ∣ x − c i ∣ ∣ 2 \varphi(x)=\sum_{i=1}^qw_i\rho(\bold x, \bold c_i)\\ \rho(\bold x, \bold c_i)=e^{-\beta_i||\bold x-\bold c_i||^2} φ(x)=i=1qwiρ(x,ci)ρ(x,ci)=eβixci2
径向基函数是沿径向对称的标量函数,定义为样本 x \bold x x与数据中心 c i \bold c_i ci之间的欧氏距离。

5.2 ART网络

竞争性学习(competitive learning)是神经网络中常用的一种无监督学习策略。网络的输出层神经元相互竞争,每个时刻仅有一个竞争获胜的神经元被激活,其他被抑制,即“胜者通吃”原则。

ART(Adaptive Resonance Theory,自适应谐振理论)网络是竞争性学习的代表。由比较层、识别层、识别阈值和重置模块构成。

流程:

  • 比较曾接收输入样本,并传递给识别层。
  • 识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类(增量学习/在线学习
  • 识别层的神经元之间相互竞争:
    • 计算输入向量与每个识别层神经元所对应的模式类的代表向量之间的距离,距离最小者胜。
      • 若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别。同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜
      • 若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。

ART比较好地缓解了竞争型学习中的“可塑性稳定性窘境”(stability-plasticity dilemma),可塑性是指神经网络要有学习新知识的能力,而稳定性则是指神经网络在学习新知识时要保持对旧知识的记忆。这就使得ART网络具有一个很重要的优点:可进行增量学习(incremental learning)或在线学习(online learning)。

5.3 SOM网络

SOM(Self-Organizing Map,自组织映射)网络:竞争学习型的无监督神经网络。将高维输入数据映射到低维空间,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的临近神经元。

image.png

5.4 级联相关网络

结构自适应网络:不仅利用训练样本确定合适的连接权、阈值等参数,还将网络结构作为学习的目标之一级联相关(Cascade-Correlation)网络是结构自适应网络的代表。

  • 级联:建立层次连接的层级结构。
  • 相关:通过最大化新神经元的输出与网络误差之间的相关性(correlation)来训练相关的参数。

优点:无需设置网络层数、隐层神经元数目,训练速度较快

缺点:数据较小时容易陷入过拟合。

5.5 Elman网络

递归神经网络(recurrent neural networks, RNN):允许网络中出现环形结构,从而可以让神经元的输出反馈回来作为输入信号。这样使得网络在 t t t时刻的状态不仅与 t t t时刻的输入有关,还与 t − 1 t-1 t1时刻的网络状态有关,从而处理与时间有关的动态变化

Elman网络是最常用的递归神经网络之一。隐层神经元的输出被反馈回来,与下一时刻的输入层神经元提供的信号一起,作为隐层神经元的输出在下一时刻的输入。隐层神经元常常采用Sigmoid激活函数,网络的训练常通过推广的BP算法进行。

5.6 Boltzmann机

Boltzmann机(平衡态分布) 是一种“基于能量的模型”(最小化能量,达到理想状态),其神经元分为两层:显层与隐层。显层用于表示数据的输入和输出,隐层是数据的内在表达。

6 深度学习

典型的深度学习模型就是很深层的神经网络。提高容量的一个简单办法是增加隐层的数目:隐层多了,相应的神经元连接权、阈值等参数就会更多。模型复杂度也可通过单纯增加隐层神经元的数目来实现。

单隐层的多层前馈网络已具有很强大的学习能力;但从增加模型复杂度的角度来看,增加隐层的数目显然比增加隐层神经元的数目更有效,因为增加隐层数不仅增加了拥有激活函数的神经元数目,还增加了激活函数嵌套的层数。然而,多隐层神经网络难以直接用经典算法(例如标准BP算法)进行训练,因为误差在多隐层内逆传播时,往往会“发散”(diverge)而不能收敛到稳定状态。

训练方法:

  • 无监督逐层训练(unsupervised layer-wise training) 是多隐层网络训练的有效手段。其基本思想:

    • 每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,本层隐结点的输出作为下一层的输入,即“预训练”(pre-training)

    • 与训练完成后,对整个网络进行微调(fine-tuning)训练

  • 权共享: 让一组神经元采用相同的连接权。这个策略在卷积神经网络CNN中发挥了重要作用。

从另一个角度来理解深度学习。无论是DBN(深度信念网络)还是CNN(卷积神经网络),其多隐层堆叠、每层对上一层的输出进行处理的机制,可看作是在对输入信号进行逐层加工,从而把初始的、与输出目标之间联系不太密切的输入表示,转化成与输出目标联系更密切的表示,使得原来仅基于最后一层输出映射难以完成的任务成为可能。换言之,通过多层处理,逐渐将初始的**“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务。由此可将深度学习理解为进行“特征学习”(feature learning)或“表示学习”(representation learning).

<think>嗯,用户之前问过激光雷达的用途,现在转向了深度学习和机器学习的学习路径。这可能意味着他们对技术领域有广泛的兴趣,或者正在考虑进入数据科学或AI领域。我需要确定他们的背景,是学生、转行者还是有其他目的。 首先,用户提到“新手如何学习”,所以需要提供从基础开始的指导。可能他们的主要需求是找到系统化的学习路线,避免在学习过程中感到迷茫。应该包括资源推荐、学习方法以及实践项目的重要性。 考虑到他们之前的问题关于激光雷达,可能对应用场景比较感兴趣,比如在自动驾驶或工业检测中的应用。所以在介绍学习路径时,可以结合这些实际应用案例,增强相关性。 需要区分机器学习和深度学习,虽然深度学习是机器学习的子领域,但初学者可能会混淆两者的学习顺序。应该建议先掌握机器学习基础,再过渡到深度学习,这样有助于建立扎实的理论基础。 用户可能没有明确说明是否有编程基础,但学习这两个领域通常需要Python和数学知识。因此,在回答中需要强调编程和数学的重要性,并提供相应的学习资源。 另外,实践是关键。新手可能会陷入理论学习的泥潭,而缺乏实际项目经验。建议他们通过Kaggle竞赛或开源项目来应用所学知识,同时培养解决问题的能力。 还要注意学习路径的阶段性,分步骤引导,避免信息过载。比如先学Python和数学,再学机器学习基础,接着是深度学习,最后是项目实战。同时,推荐社区和论坛,帮助他们解决学习中的问题,保持学习动力。 最后,可能用户担心学习难度大,需要鼓励他们保持耐心,持续实践,并参与社区交流。同时,提醒他们根据兴趣选择方向,比如计算机视觉、自然语言处理等,以保持学习的热情。</think>好的!对于深度学习和机器学习的新手,学习路径需要结合**理论基础、工具实践**和**项目经验**。以下是一个分阶段的系统化学习指南,结合中文资源和学习建议: --- ### **一、基础准备:数学 + 编程** #### 1. **数学基础** - **线性代数**:矩阵运算、向量空间(推荐《线性代数的本质》系列视频)。 - **概率与统计**:概率分布、贝叶斯定理、假设检验(可参考《统计学导论》)。 - **微积分**:导数、梯度、最优化(重点理解梯度下降原理)。 *🔍 工具辅助*:如果数学薄弱,可用工具库(如NumPy、SymPy)边实践边补基础。 #### 2. **编程能力** - **Python**:掌握基础语法、数据结构(列表/字典/函数),推荐[廖雪峰Python教程](https://www.liaoxuefeng.com/wiki/1016959663602400)。 - **关键库**: - **NumPy**(数值计算)、**Pandas**(数据分析); - **Matplotlib/Seaborn**(数据可视化)。 *📌 目标*:能独立完成数据清洗、简单可视化分析。 --- ### **二、机器学习入门:理论与工具** #### 1. **经典算法理解** - **监督学习**:线性回归、逻辑回归、决策树、SVM、随机森林。 - **无监督学习**:K-Means、PCA、聚类评估。 - **模型评估**:交叉验证、ROC曲线、混淆矩阵、过拟合与正则化。 *📚 推荐书籍*: - 《机器学习》(周志华,西瓜书)——理论扎实,适合反复读; - 《Hands-On Machine Learning》(Scikit-Learn版)——代码实践友好。 #### 2. **工具实战** - **Scikit-Learn**:从调用API开始,理解参数调优(如GridSearchCV)。 - **项目练习**: - Kaggle入门赛(如泰坦尼克生存预测、房价预测); - 使用UCI数据集(如鸢尾花分类、手写数字识别)。 --- ### **三、深度学习进阶:框架与模型** #### 1. **深度学习基础** - **核心概念**:神经网络结构、激活函数、反向传播、损失函数。 - **框架选择**: - **PyTorch**(灵活,适合研究)或 **TensorFlow/Keras**(工程部署友好)。 *🎥 推荐课程*: - 吴恩达《深度学习专项课》(Coursera,中文字幕); - 李沐《动手学深度学习》(B站免费视频+代码)。 #### 2. **经典模型实践** - **计算机视觉**:CNN(LeNet、ResNet)、目标检测(YOLO)。 - **自然语言处理**:RNN、LSTM、Transformer。 - **实战工具**: - PyTorch Lightning(简化训练流程); - Hugging Face(快速调用预训练模型)。 #### 3. **调试技巧** - 学习使用TensorBoard或Weights & Biases可视化训练过程; - 掌握过拟合解决方法(数据增强、Dropout、早停法)。 --- ### **四、项目实战:从模仿到创新** #### 1. **复现经典项目** - 图像分类:CIFAR-10数据集训练ResNet; - 文本生成:用LSTM生成唐诗或新闻标题; - 目标检测:用YOLOv5训练自定义数据集(如检测交通标志)。 #### 2. **参与竞赛** - **Kaggle**:从Featured竞赛中选择感兴趣的主题(如预测、图像分割); - **阿里天池/AI Studio**:国内平台,中文社区支持更友好。 #### 3. **开源贡献** - 在GitHub上复现论文代码(如搜索“PyTorch implementation of XXX”); - 参与开源项目(如Hugging Face模型库的文档优化或Bug修复)。 --- ### **五、持续提升:理论与工程结合** #### 1. **深入理论** - 阅读经典论文(如AlexNet、Transformer、BERT),配合代码实现; - 学习《深度学习》(花书)中的数学推导。 #### 2. **工程化能力** - 模型部署:学习ONNX、TensorRT或Flask/Django构建API; - 性能优化:掌握模型剪枝、量化、蒸馏等轻量化技术。 #### 3. **领域聚焦** - **CV方向**:学习OpenCV、MMDetection; - **NLP方向**:深入Hugging Face库、Prompt Engineering; - **强化学习**:从Gym环境到PPO算法。 --- ### **六、学习资源推荐** #### 1. **中文社区** - **论坛**:知乎(关注李沐、邱锡鹏等大V)、优快云(入门教程多); - **公众号**:AI科技评论、机器之心。 #### 2. **免费课程** - B站:跟李沐学AI、莫烦Python; - 百度AI Studio:提供免费GPU算力。 #### 3. **书籍** - 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》 - 《Python深度学习(第2版)》 --- ### **七、避坑指南** 1. **不要盲目追新**:先掌握经典模型(如ResNet、BERT),再跟进前沿论文。 2. **代码 > 理论**:初期以跑通代码、理解流程为主,数学推导可逐步深入。 3. **学会提问**:遇到报错先查Stack Overflow、GitHub Issues,再向社区求助。 --- ### **总结** 新手学习的关键是**快速建立正反馈**: 1. 从工具(Python+框架)入手,先实现“能跑通代码”; 2. 通过项目理解理论(如反向传播),而非死磕公式; 3. 加入社群,避免闭门造车。保持耐心,半年可入门,1-2年能独立开发模型!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值