サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
joisino.hatenablog.com
グラフニューラルネットワーク (機械学習プロフェッショナルシリーズ) 作者:佐藤 竜馬講談社Amazon 講談社より『グラフニューラルネットワーク(機械学習プロフェッショナルシリーズ)』を上梓しました。 グラフニューラルネットワークはグラフデータのためのニューラルネットワークです。化合物やソーシャルネットワークのようなグラフデータの解析に使うことができます。また後で述べるように、テキストも画像もグラフなのでテキストや画像の分析にも使えますし、それらを組み合わせたマルチモーダルなデータにも適用できます。要は何にでも使うことができます。この汎用性がグラフニューラルネットワークの大きな強みです。 本稿ではグラフニューラルネットワークを学ぶモチベーションと、本書でこだわったポイントをご紹介します。 グラフニューラルネットワークは何にでも使える 付加情報をグラフとして表現できる グラフニューラルネッ
講談社サイエンティフィク様より『転移学習』をご恵贈いただきました。一通り読み終えたので感想を書きます。 転移学習 (機械学習プロフェッショナルシリーズ) 作者:松井 孝太,熊谷 亘講談社Amazon 全 414 ページとかなりの重厚感。しかも決して引き伸ばした跡がなく、むしろ原液のような濃さを感じる中身です。原理に基づいて本質的な事項が解説されており、しっかり読むととても力のつく一冊だと思いました。 転移学習の難しさを直視する 本書の大きな特徴は転移学習の難しさを誤魔化さずに正面から取り扱っている点です。 転移学習とは、元ドメインのデータ と目標ドメインのデータ が与えられたときに、目標ドメインでの性能が高いモデルを獲得する技術です。鍵になるのは元ドメインのデータであり、これをうまく活用することで従来の学習よりも「ラクに」良いモデルを得ることを目指します。ここでいうラクとは、必要な目標ドメ
先日、博士(情報学)になりました。学部と大学院をあわせた 9 年間で読んだ情報科学関連の教科書・専門書を思い出を振り返りつつここにまとめます。私は授業はあまり聞かずに独学するタイプだったので、ここに挙げた書籍を通読すれば、大学に通わなくてもおおよそ情報学博士ほどの知識は身につくものと思われます。ただし、特に大学院で重要となる論文を読み書きすることについては本稿には含めておりません。それらについては論文読みの日課についてや論文の書き方などを参考にしてください。 joisino.hatenablog.com 凡例:(半端)とは、数章だけ読んだ場合か、最後まで読んだものの理解が浅く、今となっては薄ぼんやりとしか覚えていないことを指します。☆は特におすすめなことを表します。 学部一年 寺田 文行『線形代数 増訂版』 黒田 成俊『微分積分』 河野 敬雄『確率概論』 東京大学教養学部統計学教室『統計学
『最適輸送の理論とアルゴリズム』が重版して第 5 刷となりました。皆さまありがとうございます! 漫画家さんやイラストレーターさんが重版したときに重版感謝の描き下ろしイラストを投稿しているのを見ていいなと思ったので、僕も専門書が重版したときに重版感謝の書き下ろし専門記事を投稿します。 本稿では、最近話題の拡散モデルと最適輸送の関係を直観的に解説します。 拡散モデルは画像の生成によく用いられる生成モデルです。モデルはノイズ入りの画像を受け取り、ノイズを除去することを目指します。生成時には、完全なノイズ画像からはじめて、モデルによりノイズを除去することと、微小なノイズを加えることを繰り返して洗練させていき、自然画像を得ます。 拡散モデルの動作の図示 このように、ノイズ から自然画像 までゆらぎながら変化する過程をブラウン橋 (Brownian bridge) と言います。ブラウン運動 (Brow
深層モデルのパラメータを一列に並べてベクトルにします。このベクトルは大規模なモデルであれば何十億次元にもなります。一見、意味のない数値の羅列のようですが、このベクトルはベクトルとして深い意味があることが分かってきています。例えば、 と を異なるパラメータベクトルとすると、 や をパラメータとして持つモデルはちゃんと機能します。本稿では、このようなモデルパラメータの算術を用いた手法とその背後にある理論について解説します。 モデルスープ タスクベクトル モデルパラメータとニューラルタンジェントカーネル おわりに モデルスープ モデルスープ [Wortsman+ ICML 2022] は複数のモデルパラメータを平均することで性能を上げる手法です。事前学習モデル からはじめて、様々なハイパーパラメータで訓練した結果のパラメータを とします。これらを平均したベクトル は個々のモデルよりも性能が高く、
共立出版さまより『Human-in-the-Loop 機械学習』をご恵贈いただきました。一通り読み終えたので感想を共有します。 映り込みが激しくて写真を撮るのが難しいことで有名な表紙 本書は機械学習モデルを訓練するためのデータを人間がどのように用意するかという問題を扱っています。本書の前半では能動学習というラベル付けデータの選び方の技法が、本書の後半では人間が付けたラベルの管理方法やラベル付けのための適切なインターフェースが紹介されています。 機械学習におけるデータをいかに作るかということは私自身とても注目している領域です。『Active Learning from the Web(能動学習を使ってウェブから機械学習データを収集する)』という論文を書いたこともありますし、PDF 翻訳サービスの Readable では能動学習に基づいたアノテーションを実際に行っています。そのため本書は非常に
2023 も色々やりました。 ↓去年 joisino.hatenablog.com 研究 今年はあまり論文を出版できませんでした。去年 10 本出版しましたとか言って調子に乗っていたのに……。優しい内臓先生の「私は過去の自分と比較するのが好きです。高確率で勝てるので。」という言葉が好きなのですが、私は負けました。悔しい。調子良かった年だけ貼るのも良くないのでちゃんと今年も貼ります(偉い)。 本の執筆 去年一年ずっと執筆していた『最適輸送の理論とアルゴリズム』が無事出版されました。買っていただいた皆様ありがとうございます。まだ買っていない方も、まだこの本を読む人生の楽しみがあるということでおめでとうございます。 最適輸送の理論とアルゴリズム (機械学習プロフェッショナルシリーズ) 作者:佐藤竜馬講談社Amazon また書きたいな〜と言っていましたが早速執筆の機会をいただき、同じ機械学習プロフ
IBIS 2023 のパネルディスカッション「君たちはどう研究するか」にて研究の取り組み方についてお話しました。この記事はそこでお話した内容を編集したものです。 🔍研究テーマの決め方について 📆 研究プロジェクトの進め方 😵💫 研究がうまくいかないときの対処法 📝 論文の書き方 おわりに 🔍研究テーマの決め方について 僕は研究テーマ選びはあまり重要ではないと考えています。どういうテーマにめぐり合うかは運なので、そこで思いつめても仕方がありません。なので、僕は自分から積極的にテーマを探しにいくということはしていません。それよりも、テーマを決めたあとの掘り下げ方という自分でコントロールする部分に集中して研究に取り組んでいます。 その人の地力によって、テーマとして成立させられるストライクゾーンが決まってくると考えています。初心者うちは、王道のテーマで王道のストーリーでしか成立させら
かれこれ三年以上ほぼ毎朝論文を読んでいます。 ほぼ毎朝、というのは本当にほぼ毎朝です。この三年のうち読まなかった日はワクチンの副反応でダウンしている日など、あわせて 10 ~ 20 日ほどでしかありません。この日課だけでも 1000 本以上は論文を読んだことになります。 論文読みの日課についての知見が溜まってきたのでこの記事で共有します。 主な想定読者は研究者と学生の皆さんですが、それ以外の論文読みに興味のある皆さんにも有用な情報が詰まっているはずです。 日課の流れ Readable について 🧐 論文の選び方 自分の研究内容と直接関係あるものを読む(特におすすめ) 完全にランダムに選ぶ 被引用数の多い順に選ぶ(特におすすめ) トピックごとに重要な論文を読んでいく 研究者ごとに論文を読んでいく 📝 論文メモの書き方 ⏳ 時間を計測する 🤗 論文メモを公開する 📜 表現集の作成 🔨
2022年にはいろんなことがありました。 研究 今年もたくさん研究をして論文を書きました。主著だけでも10本出版しました。記念のスクリーンショットです。 出しすぎで草 これについての想定アンチコメントは「研究は量より質」です。 ごもっともです。すみませんでした。 本の執筆 この1年はずっと『最適輸送の理論とアルゴリズム』という本を書いていました。ベストセラー記念のスクリーンショットです。 たくさん予約いただきありがとうございました。 本屋大賞への投票もよろしくお願いします。 (追記:本屋大賞受賞の対象外だそうです。すみませんでした。) 本を書くのは初めての経験でした。僕は論文執筆のスピードは速い方だと自負しているので、本を書くのも余裕だろうとたかをくくっていましたが、計算違いでした。本を書き上げるのはめちゃくちゃ大変です(主に長大な原稿の整合性を保つ点と、論文よりも広いスコープの読者に配慮
どのようにして論文を書いているかを尋ねられることが最近よくあります。場当たり的に回答することが多かったのですが、このことについて改めてしっかり考えて公開することにしました。 ここで扱う内容は、科学者とはこうあるべき、という理想論ではなく、等身大の大学院生がいかにして論文を捻りだすかという実践的な方法論です。科学者の規範に照らすと適切ではない内容もあるかと思いますがご容赦ください。その代わり、現役の大学院生にとってはただちに活用できる内容になったと思います。 以下では時系列に沿って各段階の方法について述べていきます。 アイデアを考える まずは論文のアイデアを収集します。僕は普段からネタ帳にアイデアを書き溜めていき、論文を書こうと思い立ったタイミングでその中からアイデアを一つ(または二つの組み合わせ)を選んで作業をはじめます。 どのようにアイデアを得るかはあまり一貫性がありません。ここでは代表
よりも小さい時間計算量 で行列積を計算するシュトラッセンのアルゴリズムとその導出方法を紹介します。 シュトラッセンのアルゴリズム の行列積 を考えます。 まず を $$ \begin{pmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{pmatrix} \begin{pmatrix} B_{11} & B_{12} \\ B_{21} & B_{22} \end{pmatrix} = \begin{pmatrix} C_{11} & C_{12} \\ C_{21} & C_{22} \end{pmatrix} $$ というように 行列に分解します。 が奇数のときは余った行、列を適当にどちらかに分けてあげてください。 まず つの行列積 $$ \begin{align} P_{1} &= ( A_{11} + A_{22} ) ( B_{11}
皆さんは自分の研究成果をどうやって広めていますか? ひとつの研究は実働時間だけでも最低数ヶ月、全出版プロセスを考えると一年単位で取り組むこととなります。そうして手塩にかけて育てた研究が誰にも認知されない、というのはなんとも悲しいことです。 僕が所属している機械学習分野は人工知能ブームにより、日々洪水のように論文が発表され、その中で存在感を発揮するのは難しくなっています。 一昔前であれば、名のある国際会議やジャーナルに採択されればそれなりに存在感を発揮できたようですが、今では一つの会議に数千本の論文が採択されるため、採択された後にも競争に勝たなければ目立てないという事態になっています。 論文のクオリティを上げて名のある国際会議に採択されるだけでは不十分、となれば一体どうすれば良いでしょう。 有望な策は無く、天に祈って運に任せる、というのが最も一般的なパターンではないでしょうか。広く読まれる論
English Version 実対称行列の固有値が実数であること、および実対称行列の固有ベクトルで正規直交基底が作れることは様々な領域で非常に重要な役割を果たしています。例えば、主成分分析の導出はこの事実に基づいています。 線形代数の教科書であれば必ず証明が載っているこの定理ですが、その証明は直感的に分かりづらいものばかりです。この記事では、より直感的な説明を試みたいと思います。 おさらい: 典型的な証明 典型的な証明をおさらいします。詳しく知っている人は「ここから本編」まで読み飛ばしてもらってかまいません。この証明ではよく分からんということを伝えたいだけなので、知らない人も深く理解する必要はなく、難しいなぁと思ってもらうだけでよいです。この章の結果は後の章では使いません。 固有値の存在の証明 固有値の存在は自明ではありません。多くの教科書では行列式を経由して固有多項式を定義し、代数学の
この記事は Concrete Mathematics の演習問題 1.22 を元に作成しています。 ベン図とは複数の集合の関係を図式化したものです。例えば以下は 3 要素のベン図です。 n 要素のベン図には n 個の図形があり、2n 個の領域に分かれ、それぞれの領域は含まれる図形の集合が異なるようになっています。 3 要素のベン図は上記のように円で描けるのですが、4 要素のベン図は円で描けないことが知られています。(4 つの円で 24 = 16 個の領域を構成するのが無理なため。) どんな図形を使ってもよければ多要素のベン図を構成するのは容易ですが、任意の n について合同な凸図形のみで n 要素のベン図構成することは可能でしょうか? 取っ掛かりのなく難しそうな問題ですが、実はキレイに解けることが知られています。 準備: de Bruijn 列 構成にあたって de Bruijn 列という
皆さん、忙しい日々の生活に追われ、まんがタイムきらら系列誌を買い忘れてしまうことはありませんか? まんがタイムきらら系列誌を買い忘れると QOL が大きく低下してしまうので、これだけはなんとしても避けたいものです。 そこで、買い忘れないように発売日に Slack に通知してくれるスクリプトを書きました。 レポジトリ github.com レポジトリです。 先行研究 github.com 先行研究としては @tyage さんの dokidokivisual-bot が挙げられれます。 まんがタイムきらら系列誌は月刊誌なので、基本的にはこのように発売日を固定としても問題無いのですが、発売日が日曜日や祝日と被ると実際の発売日が前倒しになります。 例えば、まんがタイムきららキャラットは毎月 28 日に発売が予定されていますが、 2018/01/28 は日曜日なので、 2018 年 3 月号は 20
Batch Normalization [1] を chainer で実装しました。 色々な場合に適用できて、学習速度が速くなったり汎化性能が上がったりするすごいテクです。 Batch Normalization の説明 上層(出力層に近い層)の入力は、当然下層(入力層に近い側)のパラメータに依存します。 学習が進むにしたがって下層のパラーメータは変化するので、それにしたがって上層の入力の分布が変化します。 このような中間層の入力の分布の変化を Internal Covariate Shift と呼びます。 入力の分布が変化した層はそれに合わせてパラメータも学習しなおさなければなりません。 これが、学習の速度を下げる要因になります。 Batch Normalization は、Internal Covariate Shift が起きないように各層の入力の分布を一定に保とうとするテクです。
この前 Parikh の定理(パリークの定理)を知ってびっくりしたので紹介します。 形式言語界隈では常識らしいです。 三行で説明して 文脈自由言語と正規言語は、単語を記号の度数で同一視(つまり記号の順番を無視する)と、同じクラスになるというものです。 具体的には準線形というクラスになります。 びっくりしませんか?僕はびっくりしました。 基本的な用語の定義 以下、終端記号の集合を とします。 線形部分集合 の元 を用いて と表せる集合のことを線形部分集合(linear subset)といいます。 線形といいつつ だけバイアスがあり なので錐みたいな感じです。 準線形部分集合 線形部分集合の有限族 の和集合 で表される集合のことを準線形部分集合 (semilinear subset)といいます。 語についての Parikh mapping 語 について、 に が登場する回数を とします。このと
時間計算量 <O(n), O(1)> の LCA(Lowest Common Ancestor) と RMQ(Range Minimum Query) を C++ で実装しました。 アルゴリズムの解説はDさんのスライド [1] LCA and RMQ ~簡潔もあるよ!~ がとても分かりやすいのでそちらを参照してください。 概要だけ説明します。 LCA の概要 LCA は頂点を dfs 順で訪れた順に並べると深さの列の RMQ に帰着されます。このことは [2] 蟻本 などに載っています。 この列は隣り合う数の差がちょうど になっています。 この列を 個ずつのブロックに分け、それぞれのブロック内の最小値を求めます。 ブロックの数は 個になるので、ブロックの区間の最小値を求めるクエリは sparse table を使うと前処理 、クエリ で処理できます。 ブロックの中についてですが、各ブロック
ケイリーの公式の証明たちの紹介です。 ケイリーの公式とは ケイリーの公式とは 頂点のラベル付きの木の総数 が であるという公式のことです。 ここで、ラベル付きであるとは、それぞれの頂点を区別するということです。 たとえば のとき、頂点を区別しない場合は長さ のパスのみの 通りですが、ラベル付きの木の場合は , , の 通りです。 証明 1 (プリューファーコード) [1] おそらく一番有名な証明です。 頂点のラベル付きの木の集合から への全単射を以下のように構成します。 最もラベルが小さい葉を木から取り除き、その葉と繋がっていた頂点のラベル を数列の最初の値とします。 続けて、最もラベルが小さい葉を木から取り除き、その葉と繋がっていた頂点のラベル を数列の 番目の値とします。 以下同様に頂点が つになるまで操作を続けます。 こうしてできた数列 が木の値となります。 この数列をプリューファー
大学の実験で必要になって実装したのでメモしておきます。 Convolutional LSTM の説明 名前で完全にネタバレしてる感が否めないですが、Convolutional LSTM とは、LSTM の結合を全結合から畳み込みに変更したものです。 例えば画像を RNN に食わすときに、位置情報が失われないので便利です。 動画の次フレームの予測や天気予報などに使えます。 具体的には、以下のような構造になっています。 x は要素ごとの掛け算、 * は畳み込みを表します。 通常の LSTM との差分を赤で書きました。といっても、一部の掛け算が畳み込みになっているだけですが。 peephole の部分だけ要素ごとの掛け算になっていることに注意してください。 実装 Convolutinoal LSTM と、それをビルディングブロックとして使って画像予測のネットワークを実装しました。 github.
この記事は ゆゆ式 Advent Calendar 2017 - Adventar 24 日目の記事です。 はじめに joisino.hatenablog.com 前回、唯の画像を無限に生成することに(部分的に)成功した訳ですが、画像ができたら今度は声が欲しくなってきます。 そこで、 [1710.08969] Efficiently Trainable Text-to-Speech System Based on Deep Convolutional Networks with Guided Attention を chainer で実装して、唯の声で学習させてみました。 レポジトリ github.com レポジトリです。 結果 正直そこまでクオリティの高い声は生成できませんでした。 学習データが足りないのが一番の原因のようです。詳しい考察や解説は後回しにしてとりあえず結果を載せていきます
joisino.hatenablog.com ▲昔の記事 前回の試みから二年以上経ちましたがまだゆゆ式二期は発表されません。(*1) 二期が発表されないためこの記事のタイトルものんのんびよりさんから拝借することになりました。 やはり今話題のディープラーニングでなんとかするしかなさそうです。 三行で説明して Progressive Growing GAN (Tero Karras et. al. 2017) を chainer で実装して櫟井唯さん(ゆゆ式)の画像を生成しました。 こんな感じのができました。(下の方にスクロールするともっとたくさんあります。) github.com レポジトリです。 Progressive Growing GAN とは 浅いネットワークで小さい画像を生成・識別することからはじめ、段階的にネットワークと画像を大きくしていく手法です。太古に流行った AE の事前学
色んな人がやってそうだけど自分用に作ってみました。 リポジトリです。 github.com 使い方 リポジトリをクローンして初期設定します 神絵師のリストを twitter で作って登録します 動かします slack に神絵が流れてきます 動作例 詳しく 動作の流れは以下の通りです。 twitter API を使って、リストから画像を含むツイートを抽出して保存する 保存した画像から二次元イラストを抽出する 抽出した画像を slack incoming-webhook をつかってチャンネルに流す 2 が難しいところです。 神絵師が画像を投稿したからといってそれが必ずしも神絵であるとは限りません。 例えば今回の場合、神絵師が食べた焼肉の写真は slack に流れてきてほしくありません。 @wafrelka 少し遅くなりましたが、今日の昼ごはんは焼肉です!! pic.twitter.com/wG
はじめに IOI 2013 オーストラリア大会に Art Class という問題があります。 この問題は、画像データが与えられるのでその画像が 様式1(新造形主義の現代芸術) 様式2(印象派の風景画) 様式3(表現派のアクション・ペインティング) 様式4(カラーフィールド・ペインティング) のいずれであるかを判定する問題です。 正答率が 0.9 以上になると満点が得られます。 IOI にしては珍しい機械学習的な問題であることと、ジャッジが壊れて結果が返ってこなくなったことなどで有名なので、知っている人も多いかもしれません。 問題文やデータは、 http://www.ioinformatics.org/locations/ioi13/contest/ から手に入ります。 普通の解法 例えば 3x3 と 65x65 の大きさの窓を作って分散を計算して、それらを使って手で決定木を作るなどすると解
Dilated Convolution を chainer で実装しました。 Dilated Convolution の説明 Dilated Convolution は、フィルターとの積を取る相手の間隔をあける畳み込みのことです。 例えば、以下のような画像において、 12 を中心に 3 x 3 の普通の畳み込みフィルターを適用すると、 6, 7, 8, 11, 12, 13, 16, 17, 18 との積を取って和を取ると思います。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 3 x 3 の dilate = 2 の Dilated Convolution フィルターを 12 を中心に適用すると、0, 2, 4, 10, 12, 14, 20, 22, 24 と 1 つおきに取ってきて、それらに 3 x
先日、長いようで短かった実験がついに終わったので記録を残しておきます。 はじめに 京都大学情報学科の計算機科学コースでは計算機科学実験及演習(以下、実験)という必修科目が 2 回生前期 / 後期、 3 回生前期 / 後期の計 4 つあります。 実験 1 はプログラミングの入門みたいな内容 実験 2 はマリオ AI の作成と電子回路 実験 3 は CPU 製作とインタプリタ製作 実験 4 はいくつかの分野から選択 という感じです。 僕たち 2015 年入学の学生から実験の内容が少し変わったのですが、実験 3 の CPU 製作は昔からあるみたいです。 CPU を製作する学生実験といえば某大学某学科の CPU 実験が有名で知っている人も多いと思います。 CPU 実験でググるとすごい人の製作記がたくさん出てきて面白いのですが、いまググるとこの記事が霞んで見えるので読み終わってから調べてください(参
2024-04-25 『グラフニューラルネットワーク』を上梓しました グラフニューラルネットワーク (機械学習プロフェッショナルシリーズ)作者:佐藤 竜馬講談社Amazon 講談社より『グラフニューラルネットワーク(機械学習プロフェッショナルシリーズ)』を上梓しました。 グラフニューラルネットワークはグラフデータのための… 2024-04-10 松井・熊谷『転移学習』の感想 講談社サイエンティフィク様より『転移学習』をご恵贈いただきました。一通り読み終えたので感想を書きます。 転移学習 (機械学習プロフェッショナルシリーズ)作者:松井 孝太,熊谷 亘講談社Amazon 全 414 ページとかなりの重厚感。しかも決して引き伸ばした… 2024-03-27 大学で読んだ情報科学関連の教科書 先日、博士(情報学)になりました。学部と大学院をあわせた 9 年間で読んだ情報科学関連の教科書・専門書を
いくら待てどゆゆ式二期の発表がないのでそろそろ僕の櫟井唯ちゃん資源が枯渇してしまいそうです そこで今話題のニューラルネットワークに唯ちゃんの画像を無限に生成してもらうことにしました とりあえずこちらがデモです(設定の読み込みにかなり時間がかかります) Mugen Yuichan ランダムに生成したサンプルです 一応はっきりと唯ちゃんだと分かる 使ったのはDenoising Autoencoder(DAE) ふつうのAutoencoderの入力にノイズを加えて学習させるだけです(今回はガウス分布のノイズを加えました) ノイズ除去に使えたり生成モデルを作れたりします DAEについては深層学習 (機械学習プロフェッショナルシリーズ)を参考にしました 作り方 まずはゆゆ式の本編から唯ちゃんの顔部分だけ切り抜きます この作業はこのページを参考にさせていただきました ご注文はDeep Learning
次のページ
このページを最初にブックマークしてみませんか?
『ジョイジョイジョイ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く