chap1:統計學習方法概論

第1章 統計學習方法概論

文章目錄

  • 第1章 統計學習方法概論
    • 前言
      • 章節目錄
      • 導讀
    • 實現統計學習方法的步驟
    • 統計學習分類
      • 基本分類
        • 監督學習
        • 無監督學習
        • 強化學習
      • 按模型分類
        • 概率模型與非概率模型
      • 按算法分類
      • 按技巧分類
        • 貝葉斯學習
        • 核方法
    • 統計學習方法三要素
      • 模型
        • 模型是什么?
      • 策略
        • 損失函數與風險函數
        • 常用損失函數
        • ERM與SRM
      • 算法
    • 模型評估與模型選擇
      • 過擬合與模型選擇
    • 正則化與交叉驗證
        • 正則化
        • 交叉驗證
    • 泛化能力
    • 生成模型與判別模型
      • 生成方法
      • 判別方法
    • 分類問題、標注問題、回歸問題
    • 習題解答參考
    • 參考學習路徑:

前言

章節目錄

  1. 統計學習
  2. 統計學習的分類
    1. 基本分類
    2. 按模型分類
    3. 按算法分類
    4. 按技巧分類
  3. 統計學習三要素
    1. 模型
    2. 策略
    3. 算法
  4. 模型評估與模型選擇
    1. 訓練誤差與測試誤差
    2. 過擬合與模型選擇
  5. 正則化與交叉驗證
    1. 正則化
    2. 交叉驗證
  6. 泛化能力
    1. 泛化誤差
    2. 泛化誤差上界
  7. 生成模型與判別模型
  8. 監督學習應用
    1. 分類問題
    2. 標注問題
    3. 回歸問題

導讀

  • 本章最后的三個部分,即監督學習應用中的這三個問題可以對比著看,如果暫時沒有概念,略過也可以,回頭對各個算法有了感覺回頭再看這里。
    這三部分怎么對比,三部分都有個圖來說明,仔細看下差異,本文后面會對此展開。

  • 關于損失函數,風險函數與目標函數注意體會差異

  • 后面插點從深度學習角度拿到的點

    • 關于機器學習三要素, 復旦大學邱錫鵬教授也有解讀: 模型, 學習準則, 優化算法. 這個定義比較接近代碼. 以Tensorflow為例. 通常會定義一個網絡(模型), 定義Loss(學習準則), 定義優化算法(Optimizer), 然后開Session, 不停的把數據帶入用Opitmizer去最小化Loss.
    • Losses, Metrics, 在Keras里面劃分了兩個模塊, 解釋是Losses是BP過程用到的, 而Metrics實際和損失函數類似, 用來評價模型的性能, 但是不參與反向傳播. 從源碼也能看到, Metrics里面import了很多Loss算法
  • 書中例子1.1可以參考PRML中對應的表述, 更詳細些。

  • 在監督學習中輸入和輸出對稱為樣本,在無監督學習中輸入是樣本

  • 注意在介紹輸入空間,輸出空間等概念的時候,以及這一章的很多部分都會有個帽子,監督學習中, 書中也明確了本書主要討論監督學習的問題,最后的概要總結部分對監督學習有這樣的描述:監督學習可以概括如下:從給定有限的訓練數據出發,假設數據是獨立同分布的,而且假設模型屬于某個假設空間,應用某一評價準則,從假設空間中選取一個最優的模型,使它對已給的訓練數據以及未知測試數據在給定評價標準意義下有最準確的預測。,理解下這里的假設。
    幾個假設,即數據獨立同分布、模型屬于假設空間等
    在這里插入圖片描述

  • 在貝葉斯學習部分,提到將模型、為觀測要素及其參數用變量表示,使用模型的先驗分布是貝葉斯學習的特點。注意這里面先驗是模型的先驗分布。

  • 在泛化誤差部分,用了 f ^ \hat f f^?表示最優估計,這個有時候也會用 f ? f^* f?表示意思差不多。有時候表示向量又要表示估計值,用 ? * ?可能好看一點,比如 x ? ? \vec x^* x ?,但是通常每本書都有自己的符號體系,向量可以通過字體表示,具體可以從書中的符號表部分了解。關于這一點,在第二版第一章就有所體現,監督和無監督學習中,模型用hat表示,在強化學習中,最優解用*表示。

實現統計學習方法的步驟

統計學習方法三要素:模型,策略,算法

  1. 得到一個有限的訓練數據集合
  2. 確定包含所有可能的模型的假設空間,即學習模型的集合
  3. 確定模型選擇的準則,即學習的策略
  4. 實現求解最優模型的算法,即學習的算法
  5. 通過學習方法選擇最優的模型
  6. 利用學習的最優模型對新數據進行預測或分析

統計學習分類

基本分類

這部分內容新增了無監督學習和強化學習。值得注意的一個點,之前因為只寫了監督學習,樣本表示(x, y)對,在無監督學習里面,樣本就是x。

監督學習
無監督學習
強化學習

按模型分類

概率模型與非概率模型

在監督學習中,概率模型是生成模型,非概率模型是判別模型。

按算法分類

在線學習和批量學習,在線學習通常比批量學習更難。

按技巧分類

貝葉斯學習
核方法

統計學習方法三要素

模型

模型是什么?

在監督學習過程中,模型就是所要學習的條件概率分布或者決策函數

注意書中的這部分描述,整理了一下到表格里:

假設空間 F \cal F F輸入空間 X \cal X X輸出空間 Y \cal Y Y參數空間
決策函數 F = { f θ ∣ Y = f θ ( x ) , θ ∈ R n } \cal F\it =\{f_{\theta} |Y=f_{\theta}(x), \theta \in \bf R \it ^n\} F={fθ?Y=fθ?(x),θRn}變量變量 R n \bf R\it ^n Rn
條件概率分布 F = { P ∣ P θ ( Y ∣ X ) , θ ∈ R n } \cal F\it =\{P|P_{\theta}(Y|X),\theta\in \bf R \it ^n\} F={PPθ?(YX),θRn}隨機變量隨機變量 R n \bf R\it ^n Rn

書中描述的時候,有提到條件概率分布族,這個留一下,后面chap6有提到確認邏輯斯諦分布屬于指數分布族。

策略

損失函數與風險函數

損失函數度量模型一次預測的好壞,風險函數度量平均意義下模型預測的好壞。

  1. 損失函數(loss function)或代價函數(cost function)
    損失函數定義為給定輸入 X X X預測值 f ( X ) f(X) f(X)真實值 Y Y Y之間的非負實值函數,記作 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))

  2. 風險函數(risk function)或期望損失(expected loss)
    這個和模型的泛化誤差的形式是一樣的
    R e x p ( f ) = E p [ L ( Y , f ( X ) ) ] = ∫ X × Y L ( y , f ( x ) ) P ( x , y ) d x d y R_{exp}(f)=E_p[L(Y, f(X))]=\int_{\mathcal X\times\mathcal Y}L(y,f(x))P(x,y)\, {\rm d}x{\rm d}y Rexp?(f)=Ep?[L(Y,f(X))]=X×Y?L(y,f(x))P(x,y)dxdy
    模型 f ( X ) f(X) f(X)關于聯合分布 P ( X , Y ) P(X,Y) P(X,Y)平均意義下的損失(期望損失),但是因為 P ( X , Y ) P(X,Y) P(X,Y)是未知的,所以前面的用詞是期望,以及平均意義下的

    這個表示其實就是損失的均值,反映了對整個數據的預測效果的好壞,P(x,y)轉換成 ν ( X = x , Y = y ) N \frac {\nu(X=x, Y=y)}{N} Nν(X=x,Y=y)?更容易直觀理解, 可以參考chap9,6.2.2節的部分描述來理解,但是真實的數據N是無窮的。

  3. 經驗風險(empirical risk)或經驗損失(empirical loss)
    R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp}(f)=\frac{1}{N}\sum^{N}_{i=1}L(y_i,f(x_i)) Remp?(f)=N1?i=1N?L(yi?,f(xi?))
    模型 f f f關于訓練樣本集的平均損失
    根據大數定律,當樣本容量N趨于無窮大時,經驗風險趨于期望風險

  4. 結構風險(structural risk)
    R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) R_{srm}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f) Rsrm?(f)=N1?i=1N?L(yi?,f(xi?))+λJ(f)
    J ( f ) J(f) J(f)為模型復雜度, λ ? 0 \lambda \geqslant 0 λ?0是系數,用以權衡經驗風險和模型復雜度。

常用損失函數

損失函數數值越小,模型就越好

  1. 0-1損失
    L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X))=\begin{cases}1, Y \neq f(X) \\0, Y=f(X) \end{cases} L(Y,f(X))={1,Y=f(X)0,Y=f(X)?

  2. 平方損失
    L ( Y , f ( X ) ) = ( Y ? f ( X ) ) 2 L(Y,f(X))=(Y-f(X))^2 L(Y,f(X))=(Y?f(X))2

  3. 絕對損失
    L ( Y , f ( X ) ) = ∣ Y ? f ( X ) ∣ L(Y,f(X))=|Y-f(X)| L(Y,f(X))=Y?f(X)

  4. 對數損失
    這里 P ( Y ∣ X ) ? 1 P(Y|X)\leqslant 1 P(YX)?1,對應的對數是負值,所以對數損失中包含一個負號,為什么不是絕對值?因為肯定是負的。
    L ( Y , P ( Y ∣ X ) ) = ? log ? P ( Y ∣ X ) L(Y,P(Y|X))=-\log P(Y|X) L(Y,P(YX))=?logP(YX)
    在這里插入圖片描述

ERM與SRM

經驗風險最小化(ERM)與結構風險最小化(SRM)

  1. 極大似然估計是經驗風險最小化的一個例子
    當模型是條件概率分布,損失函數是對數損失函數時,經驗風險最小化等價于極大似然估計
  2. 貝葉斯估計中的最大后驗概率估計是結構風險最小化的一個例子
    當模型是條件概率分布,損失函數是對數損失函數,模型復雜度由模型的先驗概率表示時,結構風險最小化等價于最大后驗概率估計

算法

這章里面簡單提了一下,具體可以參考chap12表格中關于學習算法的描述。

模型評估與模型選擇

訓練誤差和測試誤差是模型關于數據集的平均損失。

提到一句, 統計學習方法具體采用的損失函數未必是評估時使用的損失函數,這句理解下。參考下在數據科學比賽中給出的評分標準,與實際學習采用的損失函數之間的關系。

過擬合與模型選擇

這部分講到了最小二乘法,給了PRML中的一個例子。

這個問題中訓練數據 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ? , ( x N , y N ) } T=\{(x_1, y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1?,y1?),(x2?,y2?),?,(xN?,yN?)}

模型

f M ( x , w ) = w 0 + w 1 x + w 2 x 2 + ? + w M x M = ∑ j = 0 M w j x j f_M(x,w)=w_0+w_1x+w_2x^2+\cdots+w_Mx^M=\sum\limits_{j=0}^Mw_jx^j fM?(x,w)=w0?+w1?x+w2?x2+?+wM?xM=j=0M?wj?xj

經驗風險最小化策略下

L ( w ) = 1 N ∑ i = 1 N ( f ( x i , w ) ? y i ) 2 L(w)=\frac{1}{N}\sum\limits_{i=1}^N(f(x_i,w)-y_i)^2 L(w)=N1?i=1N?(f(xi?,w)?yi?)2

將模型和訓練數據帶入到上式得到

L ( w ) = 1 N ∑ i = 1 N ( ∑ j = 0 M w j x i j ? y i ) 2 = 1 N ∑ i = 1 N ( w ? x i ? y i ) 2 L(w)=\frac{1}{N}\sum\limits_{i=1}^N\left(\sum\limits_{j=0}^Mw_jx_i^j-y_i\right)^2=\frac{1}{N}\sum\limits_{i=1}^N(w\cdot x_i-y_i)^2 L(w)=N1?i=1N?(j=0M?wj?xij??yi?)2=N1?i=1N?(w?xi??yi?)2

這個問題要求 w = ( w 0 ? , w 1 ? , ? , w M ? ) w=(w_0^*,w_1^*,\cdots,w_M^*) w=(w0??,w1??,?,wM??)

w w w求偏導令其為零,得到一系列方程,求解可以用梯度下降或者矩陣分解。

求解線性方程組 A x = b Ax=b Ax=b,可以表示為 x = A / b x=A/b x=A/b,問題展開之后可以涉及到矩陣分解

正則化與交叉驗證

正則化

模型選擇的典型方法是正則化

交叉驗證

另一種常用的模型選擇方法是交叉驗證

  • 簡單:例如7+3比例劃分
  • S折(K折, K-Fold)
  • 留一法

關于交叉驗證,這里補充一點。

數據集的劃分這個問題,書中有提到數據充足的情況下,將數據劃分為三個部分,訓練集,驗證集和測試集。看到這里,不知道大家會不會有一樣的問題:驗證集和測試集有什么區別?

注意這里,在算法學習的過程中,測試集可能是固定的,但是驗證集和訓練集可能是變化的。比如K折交叉驗證的情況下,分成K折之后,其中的K-1折作為訓練集,1折作為驗證集,這樣針對每一個模型操作K次,計算平均測試誤差,最后選擇平均測試誤差最小的模型。這個過程中用來驗證模型效果的那一折數據就是驗證集。交叉驗證,就是這樣一個使用驗證集測試模型好壞的過程。他允許我們在模型選擇的過程中,使用一部分數據(驗證集)“偷窺”一下模型的效果。

泛化能力

  • 現實中采用最多的方法是通過測試誤差來評價學習方法的泛化能力

  • 統計學習理論試圖從理論上對學習方法的泛化能力進行分析

  • 學習方法的泛化能力往往是通過研究泛化誤差的概率上界進行的, 簡稱為泛化誤差上界(generalization error bound)

    這本書里面討論的不多,在chap8里面有討論提升方法的誤差分析, 提到 A d a B o o s t AdaBoost AdaBoost不需要知道下界 γ \gamma γ。在chap2中討論算法的收斂性的時候有提到誤分類次數的上界.

注意泛化誤差的定義,書中有說事實上,泛化誤差就是所學習到的模型的期望風險

生成模型與判別模型

監督學習方法可分為生成方法(generative approach)與判別方法(discriminative approach)

生成方法

generative approach

  • 可以還原出聯合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
  • 收斂速度快, 當樣本容量增加時, 學到的模型可以更快收斂到真實模型
  • 當存在隱變量時仍可以用

判別方法

discriminative approach

  • 直接學習條件概率 P ( Y ∣ X ) P(Y|X) P(YX)或者決策函數 f ( X ) f(X) f(X)
  • 直接面對預測, 往往學習準確率更高
  • 可以對數據進行各種程度的抽象, 定義特征并使用特征, 可以簡化學習問題

分類問題、標注問題、回歸問題

Classification, Tagging, Regression

  • 圖1.10和圖1.11除了分類系統和標注系統的差異外,沒看到其他差異,但實際上這兩幅圖中對應的輸入數據有差異,序列數據的 x i = ( x i ( 1 ) , x i ( 2 ) , … , x i ( n ) ) T x_i = (x_i^{(1)},x_i^{(2)},\dots,x_i^{(n)})^T xi?=(xi(1)?,xi(2)?,,xi(n)?)T對應

在這里插入圖片描述

  • 回歸問題的產出為 Y = f ^ ( X ) Y=\hat f(X) Y=f^?(X)
    在這里插入圖片描述在這里插入圖片描述
    在這里插入圖片描述

習題解答參考

參考:https://datawhalechina.github.io/statistical-learning-method-solutions-manual/#/chapter01/ch01

在這里插入圖片描述
在這里插入圖片描述

1,Python代碼實現:
參考:Statistical-learning-method/tree/main/chap1_統計學習方法概論

2,R代碼實現:
參考:https://github.com/xlite-dev/statistic-learning-R-note?tab=readme-ov-file
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

參考學習路徑:

1,先自己過一遍書
2,帶著問題+網課整體梳理一遍
https://www.bilibili.com/video/BV1No4y1o7ac
https://www.bilibili.com/video/BV1W7411N7Ag
筆記整理https://github.com/SmirkCao/Lihang
3,刷題/教材code實現:
(1)Python:
https://github.com/fengdu78/lihang-code
手推算法實現:https://github.com/Dod-o/Statistical-Learning-Method_Code?tab=readme-ov-file
(2)R:
https://github.com/xlite-dev/statistic-learning-R-note?tab=readme-ov-file
4,輸出:
刷題html+ipynb在github,推文導出html整理

===>

參考:https://github.com/SmirkCao/Lihang

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74267.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74267.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74267.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

爬蟲案例-爬取某站視頻

文章目錄 1、下載FFmpeg2、爬取代碼3、效果圖 1、下載FFmpeg FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。 點擊下載: ffmpeg 安裝并配置 FFmpeg 步驟: 1.下載 FFmpeg: 2.訪問 FFmpeg 官網。 3.選擇 Wi…

車載以太網網絡測試-22【傳輸層-DOIP協議-5】

目錄 1 摘要2 DoIP時間參數2.1 ISO 13400定義的時間參數2.2 參數示例 3 DoIP節點內部狀態機4 UDSonIP概述5 總結 1 摘要 本文繼續對DOIP協議進行介紹,主要是DOIP相關的時間參數、時間參數定義以及流程示例。推薦大家對上文專題進行回顧,有利于系統性學習…

(論文總結)思維鏈激發LLM推理能力

研究背景&動機 背景:擴大模型規模已被證實具有提升模型性能和模型效率的功效,但是LLM對于完成推理、算術任務仍有較大不足。 動機:從之前的應用和研究中得知,可以用生成自然語言解釋、使用神經符號等形式語言的方法來提高大模型的算術推理能力&…

前后端開發概述:架構、技術棧與未來趨勢

一、前后端開發的基本概念 1.1 什么是前后端開發? 前后端開發是 Web 開發的兩個核心部分,各自承擔不同的職責: 前端(Frontend) 負責網頁的用戶界面(UI)和用戶體驗(UX)…

anythingLLM結合searXNG實現聯網搜索

1、docker-compose 部署searXNG GitHub - searxng/searxng-docker: The docker-compose files for setting up a SearXNG instance with docker. cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker 2、修改 .env文件 # By default…

人形機器人科普

人形機器人(Humanoid Robot)是一種模仿人類外形和行為的機器人,通常具有頭部、軀干、雙臂和雙腿等結構。它們的設計目標是與人類環境無縫交互,執行復雜的任務,甚至在某些領域替代人類工作。 1. 人形機器人的定義與特點…

【CICD】Ansible知識庫

一、主機清單配置 1. 配置文件路徑 默認路徑 /etc/ansible/hosts 這是 Ansible 的全局默認庫存文件路徑,但許多用戶可能不會直接使用它。項目目錄或自定義路徑 用戶通常會為不同項目創建獨立的庫存文件,例如: 當前目錄下的 hosts、inventor…

ArkUI-List組件

列表是一個復雜的容器,當列表項達到一定數量,使得列表內容超出其范圍的時候,就會自動變為可以滾動。列表適合用來展現同類數據類型。 List的基本使用方法 List組件的構建聲明是這個樣子的 List(value?: {space?:number | string, initial…

Ubuntu實時讀取音樂軟件的音頻流

文章目錄 一. 前言二. 開發環境三. 具體操作四. 實際效果 一. 前言 起因是這樣的,我需要在Ubuntu中,實時讀取正在播放音樂的音頻流,然后對音頻進行相關的處理。本來打算使用的PipewireHelvum的方式實現,好處是可以直接利用Helvum…

【yolo】YOLO訓練參數輸入之模型輸入尺寸

模型輸入尺寸是YOLO訓練和推理過程中非常重要的參數之一。YOLO要求輸入圖像的尺寸是固定的,通常為正方形(如416416、640640等)。這個尺寸直接影響模型的性能和速度。以下是對模型輸入尺寸的詳細介紹: 1. 模型輸入尺寸的作用 統一…

【TI MSPM0】Timer學習

一、計數器 加法計數器:每進入一個脈沖,就加一減法計算器:每進入一個脈沖,就減一 當計數器減到0,觸發中斷 1.最短計時時間 當時鐘周期為1khz時,最短計時時間為1ms,最長計時時間為65535ms 當時…

從WebRTC到嵌入式:EasyRTC如何借助大模型提升音視頻通信體驗

隨著人工智能技術的快速發展,WebRTC與大模型的結合正在為音視頻通信領域帶來革命性的變革。WebRTC作為一種開源實時通信技術,以其低延遲、跨平臺兼容性和強大的音視頻處理能力,成為智能硬件和物聯網設備的重要技術支撐。 而EasyRTC作為基于W…

使用brower use AI 代理自動控制瀏覽器完成任務

第一步:終端運行命令下載 brower use pip install browser-use 第二步: 終端運行命令下載playwright playwright install 第三步:新建test.py代碼,粘貼復制以下代碼 import asyncio import osfrom dotenv import load_doten…

自由學習記錄(45)

頂點片元著色器(important) 1.需要在Pass渲染通道中編寫著色器邏輯 2.可以使用cG或HLSL兩種shader語言去編寫Shader邏輯 3.代碼量較多,靈活性較強,性能消耗更可控,可以實現更多渲染細節 4.適用于光照處理較少&#xf…

Quartus + VScode 實現模塊化流水燈

文章目錄 一、通過VScode編寫Verilog代碼二、模塊化編程三、代碼示例 一、通過VScode編寫Verilog代碼 1、下載Vscode 2、下載相關插件 搜索Verilog就會彈出有如圖所示的插件,下載并安裝 3、創建Quartus項目 4、創建完成后點擊Tools,選擇Options 然后在…

tryhackme——The Lay of the Land

文章目錄 一、網絡基礎設施1.1 內網1.2 DMZ區1.3 網絡枚舉(Network Enumeration) 二、域環境三、用戶和組管理四、安全解決方案4.1 基于主機的安全解決方案4.1.1 防病毒軟件4.1.2 Microsoft Windows Defender4.1.3 主機防火墻4.1.4 安全事件記錄與監控4.…

STM32---FreeRTOS消息隊列

一、簡介 1、隊列簡介: 隊列:是任務到任務,任務到中斷、中斷到任務數據交流的一種機制(消息傳遞)。 FreeRTOS基于隊列,實現了多種功能,其中包括隊列集、互斥信號量、計數型信號量、二值信號量…

2025年了,5G還有三個新變化

最近輿論開始討論5G為什么不火了?5G是不是停滯發展了。 實際上,5G不僅在發展,還迎來了它的升級版5G-A。 在今年西班牙舉行的世界移動通信大會上,5G-A就是焦點之一。 被譽為全球通信領域風向標的MWC,匯聚了華為、中興通…

SQLMesh SCD-2 時間維度實戰:餐飲菜單價格演化追蹤

場景背景:動態菜單價格管理 考慮某連鎖餐廳的菜單管理系統,需要記錄食品價格的歷史變更軌跡。業務需求包括: 記錄每次價格調整的時間點支持歷史價格查詢(如"2020年1月2日漢堡多少錢")維護當前有效價格清單…

失物招領|校園失物招領系統|基于Springboot的校園失物招領系統設計與實現(源碼+數據庫+文檔)

校園失物招領系統目錄 目錄 基于Springboot的校園失物招領系統設計與實現 一、前言 二、系統功能設計 三、系統實現 1、 管理員功能實現 (1) 失物招領管理 (2) 尋物啟事管理 (3) 公告管理 (4) 公告類型管理 2、用戶功能實現 (1) 失物招領 (2) 尋物啟事 (3) 公告 …