<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給不靈叔
      發送

      0

      基于結構化SVM進行序列標注

      本文作者: 不靈叔 2018-02-06 09:56
      導語:實戰!

      雷鋒網 AI 研習社按:本文為 seaboat 為雷鋒網 AI 研習社撰寫的獨家稿件,未經雷鋒網許可不得轉載。

      關于SVM

      SVM 即支持向量機,常用于二分類模型。它主要的思想是:

      • 它是特征空間上間隔最大的線性分類器。

      • 對于線性不可分的情況,通過非線性映射算法將低維空間的線性不可分的樣本映射到高維特征空間,高維特征空間能夠進行線性分析。

      什么是結構化

      其實機器學習中,如果按照輸出空間不同可以分為:

      • 二元分類(binary classification)

      • 多元分類(multiclass classification)

      • 回歸問題(regression)

      • 結構化預測(structured prediction)

      其中前面三類都是我們常見且經常用的,第四種結構化預測重點體現在結構化上,前面三類的輸出都是標簽類別或者回歸值之類的單變量,而結構化預測輸出是一種結構化的數據結構,比如輸入一句話,輸出是一顆語法樹。此外,結構還可以是圖結構、序列結構等。

      基于結構化SVM進行序列標注

      結構化SVM

      把前面的SVM與結構化結合起來就是結構化SVM了。它為了處理更加復雜的彼此之間互相存在依賴關系的結構數據,對傳統SVM進行了改進,可以說結構化SVM是在傳統SVM的基礎上擴展出來的。結構化SVM使用時主要涉及學習和推理兩個過程,與大多數機器學習算法一樣,學習其實就是確定模型的參數的過程,而推理就是根據學習到的模型對給定的輸入進行預測的過程。

      假設給定了訓練集基于結構化SVM進行序列標注,其中X和Y是兩個集合,結構化SVM就是通過這些樣本來訓練一個輸入輸出對的函數基于結構化SVM進行序列標注。預測時,對于給定的輸入X,在所有X∈Y中取得最大值的Y即為預測項。

      學習過程

      學習結構化數據就是要找到上述的一個判別函數,使之在判別函數確定后,對給定的輸入X,能選擇最大化函數f值的Y作為輸出。假定函數f的形式為,

      基于結構化SVM進行序列標注

      其中判別函數基于結構化SVM進行序列標注,W是參數向量,而Ψ(X,Y)可以看成是輸入輸出對的特征表示,代表將輸入輸出對合并起來的特征向量,它的形式取決于具體問題。 一般會假設F(X,Y;W)是(X,Y)和參數向量W的線性函數,即基于結構化SVM進行序列標注

      接著還得再定義一個損失函數Δ:Y×Y→R,它應該滿足Y=Y'時Δ(Y,Y')=0,當Y≠Y',時Δ(Y,Y')>0。那么有經驗風險函數,

      基于結構化SVM進行序列標注

      所以我們的目標是要找到一個基于結構化SVM進行序列標注使得經驗風險函數最小,而它可能存在經驗風險為0的情況,此時,滿足如下條件

      基于結構化SVM進行序列標注

      其中,基于結構化SVM進行序列標注。根據間隔最大化來求解,固定ww的長度,求能使得間隔最大的W。兩個超平面的距離為基于結構化SVM進行序列標注,最大化基于結構化SVM進行序列標注其實就等價于最小化基于結構化SVM進行序列標注,這時已經可以轉成SVM中優化問題的形式了,

      基于結構化SVM進行序列標注

      但實際情況中經驗風險為0可能會導致過擬合現象,這時要考慮容忍訓練集中某些樣本錯誤分類,從而引入松弛變量,于是優化問題變為:

      基于結構化SVM進行序列標注

      約束條件引入損失函數的影響,得

      基于結構化SVM進行序列標注

      那么現在不管是經驗風險為0還是不為0,剩下要做的事就是求解上述優化問題,即根據上述各個式子中的約束條件解得最優值W。怎么求解還是個難題,如果樣本數較少且Y狀態數較少,能用傳統的二次優化求解。

      而實際情況中樣本數和狀態數都較多,于是產生的約束條件規模非常大,總數量為 n*(|Y|-1),其中n為樣本數,|Y|為y可能的狀態數。所以在求解過程中需要先將上述優化問題轉換成對偶形式,采用割平面訓練法,具體優化過程不考慮所有約束條件,從無約束問題出發,逐步選擇約束直到精度滿足期望后停止。

      IOB標記

      常用的標注策略有IOB標記,即塊的第一個符號處標注為B,塊內部的符號標注為I,塊外的符號標注O。其中B為Begin,表示開始;I為Intermediate,表示中間;O為Other,表示其他。比如:

      我明天去北京。

      OBIOBI


      實現例子

      使用dlib庫實現結構化SVM序列標注功能,以下僅僅是一個簡單的功能。對“我 昨 天 在 學 校 看 到 小 明”,“小 紅 剛 剛 才 去 晚 自 習”中的人名進行標注,并且使用BIO標記方式,通過訓練后對“我 昨 天 在 學 校 見 到 大 東”句子進行人名提取。

      輸出分別為:

      小 明

      小 紅

      大 東

      #include <iostream>#include <cctype>#include <dlib/svm_threaded.h>#include <dlib/string.h>using namespace std;using namespace dlib;class feature_extractor{public: typedef std::vector<std::string> sequence_type; const static bool use_BIO_model = true; const static bool use_high_order_features = true; const static bool allow_negative_weights = true; unsigned long window_size()  const { return 3; } unsigned long num_features() const { return 1; } template <typename feature_setter> void get_features(
      feature_setter& set_feature, const sequence_type& sentence, unsigned long position
      ) const
      { if (sentence[0].compare("小") == 0 || sentence[0].compare("明") == 0 || sentence[0].compare("紅") == 0 || sentence[0].compare("張") == 0 || sentence[0].compare("陳") == 0)
      set_feature(0);
      }
      };void make_training_examples( std::vector<std::vector<std::string> >& samples, std::vector<std::vector<std::pair<unsigned long, unsigned long> > >& segments
      ){ std::vector<std::pair<unsigned long, unsigned long> > names;

      samples.push_back(split("我 昨 天 在 學 校 看 到 小 明"));
      names.push_back(make_pair(8, 10));
      segments.push_back(names); names.clear();

      samples.push_back(split("小 紅 剛 剛 才 去 晚 自 習"));
      names.push_back(make_pair(0, 2));
      segments.push_back(names); names.clear();

      }void print_segment( const std::vector<std::string>& sentence, const std::pair<unsigned long, unsigned long>& segment
      ){ for (unsigned long i = segment.first; i < segment.second; ++i) cout << sentence[i] << " "; cout << endl;
      }int main(){ std::vector<std::vector<std::string> > samples; std::vector<std::vector<std::pair<unsigned long, unsigned long> > > segments;
      make_training_examples(samples, segments);

      structural_sequence_segmentation_trainer<feature_extractor> trainer;

      sequence_segmenter<feature_extractor> segmenter = trainer.train(samples, segments); for (unsigned long i = 0; i < samples.size(); ++i)
      { std::vector<std::pair<unsigned long, unsigned long> > seg = segmenter(samples[i]); for (unsigned long j = 0; j < seg.size(); ++j)
      {
      print_segment(samples[i], seg[j]);
      }
      } std::vector<std::string> sentence(split("我 昨 天 在 學 校 見 到 大 東")); std::vector<std::pair<unsigned long, unsigned long> > seg = segmenter(sentence); for (unsigned long j = 0; j < seg.size(); ++j)
      {
      print_segment(sentence, seg[j]);
      }

      }

      雷峰網特約稿件,未經授權禁止轉載。詳情見轉載須知

      基于結構化SVM進行序列標注

      分享:
      相關文章
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 老湿机69福利区无码| 陆河县| 成在人线a免费观看影院| 亚洲国产精久久久久久久春色| 亚洲国产成人久久综合三区| 无码免费婬av片在线观看| 亚洲AV乱码一区二区三区按摩| 色欲久久久天天天综合网精品| 久久精品午夜一区二区福利| 人与禽交av在线播放| 成人av免费| 亚洲精品一品| 人妻丰满熟妇AV无码区APP| 精品无码日韩国产不卡av| 精品人妻一区二区三区浪潮在线 | 国产女人高潮毛片| 久久婷婷五月综合| 国产愉拍91九色国产愉拍| 波多野结衣久久一区二区| 国产sm调教折磨视频| 国产3p视频| 永登县| 兴国县| 中文字幕AV在线| 免费人成视频网站在线观看不卡| 国产精品久久无码一区二区三区网| 性夜夜春夜夜爽夜夜免费视频 | 人妻夜夜爽天天爽一区| 亚洲成A人片在线观看无码不卡| 久久久久亚洲AV青青草原| 亚洲午夜精品久久久久久app| 一本一本久久a久久精品综合不卡| 国产成人av在线影院| 国产成人精品午夜福利不卡| 庆城县| 久久无码av一区二区三区电影网 | 欧美日韩第一区| 日本午夜久久一区二区| 天堂а√在线中文在线| 亚洲AV乱码毛片在线播放| www国产无套内射com|