ブックマーク / nykergoto.hatenablog.jp (7)

  • NGBoostを読んで、実装する。 - nykergoto’s blog

    不確実性を考慮した予測が可能と噂の NGBoost の論文を読んでみたので、全体のながれをまとめて見ました。加えて自分でも NGBoost を実装して、その結果を載せています。 元の論文 NGBoost: Natural Gradient Boosting for Probabilistic Prediction はこちら https://arxiv.org/abs/1910.03225。 Introduction 一般的な教師あり学習を考えます。このとき予測モデルは入力データ $X$ に対して予測値 $y$ を出力するように学習していきますが、たいていのモデルではひとつのデータに対しては予測値はひとつしか得ることができません。 例えばウェブ上の行動履歴から、ユーザーの年齢を予測してください、という問題があったとすると、ユーザーの期待される年齢そのものを返すようなモデルがそれに当たります。

    NGBoostを読んで、実装する。 - nykergoto’s blog
  • RAdam: Adam の学習係数の分散を考えたOptimizerの論文紹介 - nykergoto’s blog

    表題の通り噂の最適化手法 RAdam の論文 On the Variance of the Adaptive Learning Rate and Beyond を読んだので, そのまとめです!! 概要 一言でいうと「今までヒューリスティックに行っていた Adam 学習開始時の LR 調整を自動化できるような枠組みをつくったよ」ということになると思います. 考える問題 この論文で, 考えていくのは機械学習のように多数のデータから成る目的関数を最小化するような問題です. 特にニューラルネットワークの学習では勾配法, 特に SGD (確率的勾配降下法) と呼ばれる方法を用いることが一般的です. SGD には様々な adaptive バリエーションがあります.この adaptive とは問題の特性を生かして, SGD を早くするような工夫を指しています. 一般的な形式 一般的な adaptive

    RAdam: Adam の学習係数の分散を考えたOptimizerの論文紹介 - nykergoto’s blog
  • 勾配ブースティングで大事なパラメータの気持ち - nykergoto’s blog

    LightGBM や XGBoost などで使われている勾配ブースティングのパラメータについて、チューニングノウハウというよりもそのパラメータがどういう意味を持っているのか、に焦点をあててまとめて見ました。 各ライブラリのパラメータすべては以下から確認できます。 lightGBM Parameter XGBoost Parameter NOTE: 以下では lightGBM のパラメータの名前で説明しています。微妙に名前が違うものがあるので適宜読み替えてください。 勾配ブースティングについてざっくりと 一般的な決定木では木はひとつだけで、その木に対してたくさんの分割ルールを適用していきます。 勾配ブースティング木では、木をたくさん作ります。たくさん作る代わりに、一つ一つの木の分割をざっくりとしたものにします。 そして作った木すべての予測の合計を使うことで、ひとつの木では表せないような複雑な

    勾配ブースティングで大事なパラメータの気持ち - nykergoto’s blog
  • ニューラルネットへのベイズ推定 - Bayesian Neural Network - nykergoto’s blog

    ニューラルネットワークの過学習防止としてDropout という機構が用いられているのはご案内のとおりです。 この Dropout 、見方を変えるとディープラーニングにおける重みのベイズ推定に相当しているのではないか、という内容が Uncertainty in Deep Learning にて述べられていて、この記事ではその内容について解説していきたいと思います。 また末尾では実際にベイズ推定を実装して、予測がちゃんと不確実性を盛り込んだものになっているかどうか、を確認します。 基的に記事の内容は元の論文(YARIN GAL さんの博士論文です)と同著者の解説ページを元にしています。それぞれ以下からアクセスできますので、解説じゃなくて自分で読みたい!という方はそちらを参考にしてください。個人的には解説も論文もとても読みやい (なんと数式もとても丁寧に記述されています!!) ので、英語が苦手

    ニューラルネットへのベイズ推定 - Bayesian Neural Network - nykergoto’s blog
  • Kaggleで勝つデータ分析の技術: 今までの機械学習本と全く違う最強の実務本 - nykergoto’s blog

    この度光栄なことに著者の @Maxwell さんから「Kaggleで勝つデータ分析技術」 を献いただきました。 私事ですがこのような形で献頂いたのは初めての経験だったのでとてもうれしくまた恐縮している次第です。 光栄なことに @Maxwell_110 さんからKaggleで勝つデータ分析技術を頂きました〜 目次の充実が話題になってましたがサラッと見ただけでも濃い内容満載で読むのワクワクです😆 https://t.co/VTKmsR5Z6s pic.twitter.com/yuRS72YyTs— ニューヨーカーGOTO (@nyker_goto) October 2, 2019 「せっかくを頂いたので書評をかこう!!」と思ってここ数日読み進めていたのですが、このが自分がここ一年ぐらいで読んだ機械学習に関連するの中でもずば抜けて内容が濃くまた情報量の多いであったため「これは僕

    Kaggleで勝つデータ分析の技術: 今までの機械学習本と全く違う最強の実務本 - nykergoto’s blog
  • 機械学習のための環境構築とその管理 - nykergoto’s blog

    機械学習プロジェクトでは python を始めとした言語 + それに付随したライブラリを使います。 僕も python 触りたての頃はローカルマシン上にひとつ python 環境を作り、必要なライブラリをインストールして使っていました。環境の分離ということはあまり意識しておらず、やったとしてもプロジェクトごとに anaconda や pyenv, venv などで個別環境を作って切り分けるレベルでした。 しかし上記の方法だと困ったことが起ることがあります。例えば… global な環境が壊れてしまってすべて壊れる。 これは各環境が global な環境に依存しているために起こります。 python 以外の変更で環境は突如として壊れます。例えば brew install hoge したら Mecab が使えなくなっちゃったとかはあるあるだと思います >_< linux / Mac / Win

    機械学習のための環境構築とその管理 - nykergoto’s blog
  • 機械学習なdockerfileを書くときに気をつけとくと良いこと - nykergoto’s blog

    みなさん機械学習系の環境構築はどうやってますか? 僕は最近は Docker を使った管理を行っています。 特に師匠も居なかったので、ぐぐったり人のイメージを見たり手探りで docker をつかいつかいしている中で、最初からやっとけばよかったなーということがいくつかあるのでメモとして残しておきます。 大きく2つです。 キャッシュは消す テストを書く キャッシュは消す ライブラリをいろいろと install すると大抵の場合ダウンロードしたファイルを保存されている場合が多いです。何かのタイミングで再びそのライブラリをインストールする際にはダウンロードしたファイルを使って、素早くインストールすることができます (この仕組みがキャッシュです)。 キャッシュがあると容量が重くなるという欠点があります。重たいイメージは pull に単に時間がかかりますから、システムとしてデプロイする時にトラフィックが

    機械学習なdockerfileを書くときに気をつけとくと良いこと - nykergoto’s blog
  • 1