米国(短期)留学週記~六週~
tags: 米国(短期)留学週記
先週の自分への課題ができたかどうか
- 個人的なやつ
- 東大関連
- こっち関連
迫るインターン・期末
インターンと期末試験が迫ってわちゃわちゃしてます
こういうときにこそTime-managementが鍛えられる(白目)
正直こっちの単位が取れても取れなくても東大での卒業単位には入らないからどうでもいいんですが,せっかくの機会なので情報科学の数理的な方を頑張りたいです...
最近の生活スタイルがVampire
眠くなるまでコーディング・勉強(効率悪すぎ)・Youtubeを見るみたいな生活
不眠症で悩んでいたのですが,寝ようとしなければいいことに気付いた(←天才)ためにこのような動きになりました
実際は寝た方がいいんだろうけど,寝れないのだからしょうがない
夜中のブルーライトには本当に気を付けましょう(帰国したら10時就業開始なんだけど大丈夫かな...)
帰国まで昼夜再逆転を目指します!!!!
論文楽しい
今まで論文で読んだことがあるのが小難しい日本語で書かれた人文社会科学系の論文だけでした.だから,論文にはつまらないというイメージが有りました
一方,機械学習の論文を課題で読まされているのですがこれは面白い
主張を支えるために論文の著者が頑張っているのが伝わって面白いです
しかも,英語で書かれた理工系の論文なので日本語の論文のように隔靴掻痒な思いをしなくて済みます
副次的にですが,自分にどんな知識が足りないのかもわかるのでよいです(いやこっちがメイン)
今までは闇雲に教科書(枯れた知識)を読んでいましたが,論文を読んで最先端の知識を取り入れるのも面白いですね
最初は雰囲気で読むことが多そうですが,ガンガン論文読んでいきたいです
こんな機会を与えてくださった学科の先生に感謝です!(煽りではなく)
来週までの目標
期末試験に課題に...うつびお...
個人的なやつ
東大関連
- 機械学習の論文(転移学習関連)を読む
- パタへネを...読めるだけ
- I1実験のレポートだけでも...(他の課題で詰まっている...)
こっち
- introduction to the theory of computationを読み終える
- CLRSを6章まで読む
- 期末試験に備えて勉強をする(当たり前)
"On Machine Learning and Programming Languages"を読んだ
tags: 論文
On Machine Learning and Programming Languages
推測できること
機械学習とプログラミング言語について書いてある論文で,もしかしたら機械学習に最適化された言語の話かな?
Abstract
アブストのアブスト
機械学習のためのfirst class programming language(関数をオブジェクトや引数として扱える言語のことかな?)(ぐぐっても出てこなかった)の重要性とどのように言語か話す
推測できること
結論
古くからあるプログラミングの考えと知恵を犠牲にせず,機械学習とプログラミング言語のいいとこ取りをする必要がある
結局どんな論文だったのか
割と時間の無駄感あった()
何についての論文か
- TF(define-before-run)などの機械学習のライブラリはもはやメタプログラミングの領域(プログラミング言語)
- ただし,機能上の制限が多くよりプログラミング言語本来の機能が求められている
- Chainer(define-by-run)はautomatic differentiation(AD)を使ってPythonそれ自体をモデルとして扱うことで,プログラミング言語本来の機能(再帰など)を使うことを可能にしているらしい
- その他色々今の機械学習の現状に合わせてプログラミング言語の機能を付け加える主張をしていた
先行研究と比べた強み
特に無し
技術や手法のキモはどこか
特に無し
どうやって有効と示したのか
特に無し
議論はあるのか
機械学習に合わせて機能の制限されたライブラリでなくもっと発展的な言語(のように使用できるライブラリ)を作るべきという主張のみ
わからなかった点
- first-classの定義が曖昧でよくわからなかった(多分微分可能な関数とか色々な概念に関して言っているっぽい)
- HPC
- High-performance computing
次に読むべき論文は
特に無し
読むのにかけた時間
30分
論文"BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"を読んだ
tags: 論文
Title
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
推測できること
trainデータになんらかの加工をするDeep Learningを利用した自然言語処理の新手法に関する論文かな?
Abstract
アブストのアブスト
- BERT とは Bidirectional Encoder Representations from Transformers の頭文字を取ったもの.
- BERTは左右両方の文脈を条件に,"deep bidirectional representation"をラベル付けされていない文章(教師なし?)から前学習させる手法
- やることに合わせてアーキテクチャをそこまで最適化させずにただ出力層を一つ加えるだけで微調整され,質問に答えたり,推論をする最新のモデルができる
推測できること
- 今までの手法よりもより汎化性能が高い?
結論
- 近年,転移学習によりリッチで(色々な文章からということかな?)教師なし事前学習は欠かせないものだと示されていた
- その結果がリソースが少ない(計算資源のことかな?)仕事でも"deep unidirectional architecture"から利益を得られていた
- この論文の結果は上の発見を"deep bidirectional architecture"にも広げたこと(同じ"pre-trained model"でも)
結局どんな論文だったのか
- BERT
- 2 stepが必要
- pre-training
- 異なるモデルのラベル付けのされていないデータでpre-trainingされる
- fine-tuning
- downstreamのときにラベル付けされたデータで微調整される
- pre-training
- 他と違う点: 異なるタスクに対して統一されたアーキテクチャ(pre-trainingを通したアーキテクチャと最終的なdownstreamのアーキテクチャに最小限の違いしかない)
- Masked LM
- ランダムに入力のうちの15%を隠して,それを予想させることでモデルが多層化された文脈から目標(ここでは言葉?)を予想できるようにすること
- Next Sentence Prediction
- モデルに文章の関係を理解させるために,コーパスから作ることができるbinarized(真偽値に置き換えられたということ?)次の文章の予測のためにpre-trainをすること
- Masked LM
- Fine-tuning BERT
- 2つの文章感で双方向にcross attentionをしているらしい(よくわからない...)(bidirectional transformerの説明かな?)
- これで計算にかかるコストが少なくなっているらしい
- 2 stepが必要
何についての論文か
転移学習で双方向的に言語モデルを更新するという手法を用いて自然言語処理の新しい手法についての論文
先行研究と比べた強み
- Bidirectional Transformer Representation
- 過去のモデルでは片方向からの文脈に依存して言語モデルの更新をしていた
- これで精度が向上した
技術や手法のキモはどこか
上と同様
どうやって有効と示したのか
- BERTに対しては下記のテストのスコアで示した
- GLUE
- SQuAD v1.1
- SQuAD v2.0
- SWAG
- NSPに対して
- MLMを用いてLTR(Left-to-Right)モデルと,NSPを用いるモデルを比べた
- 結果はNSPを用いた方がスコアが高い
- RTLもできるよね(でもやらない)
- MLMを用いてLTR(Left-to-Right)モデルと,NSPを用いるモデルを比べた
- モデルのサイズに関して
- 層,隠れunit,attendtionのheadの数を変えてやってみた(ハイパーパラメエータ,訓練方法は前と同じ)
- モデルのサイズを非常に大きくするとデータのサイズが小さくても?(very small scale tasks)性能がかなり向上するらしい
- ただし,限界はある
- fine-tuningに関して
- 代わりにfeature-basedを使ったモデルと比較
- 大差はなかった
- BERTはfine-tuningでもfeature-basedな手法でも効果的らしい
議論はあるのか
うーん,わからん
調べた点
- deep bidirectional representationとは?
- "transfer learning"
- "pre-training"とはただの"training"と何が違うのか?
- 転移学習に必要なものらしい
- モデルの学習に必要なドメインの異なるデータ
- "fine-tuning"とは?
- "pre-train"モデルの重みを流用して新たなモデルを再学習させること
- "mask R-CNN"とは?
- 物体を切り分ける,検出すること
- "attention"とは
次に読むべき論文は
知識が足りなかったので,転移学習に関する論文とfeature-basedとfine-tuningに注目した論文を読むべき
読むのにかけた時間
5~6時間くらい?
前提知識が少なすぎて時間が溶けた
米国(短期)留学週記~五週~
tags: 米国(短期)留学週記
先週の自分への課題ができたかどうか
- 個人的なやつ
- [ ] 毎日ABCのD問題を最低1問やる
- 課題をやっていたら普通に忘れた...
- [ ] 毎日ABCのD問題を最低1問やる
- 東大関連
- [x]信号処理の過去問をある年度の分終わらせる
- 終わらせたが,過去問解答の寄せ集めを作ったが始動が遅すぎた
- 間違い注意
- [ ]I実験のレポートを終わらせる(日本時間の8/1=カリフォルニア時間7/31締切)
- 思った以上に多くて終わらなかった
- 今週終わらせます
- [x]教授にレポートに関してメールを送る
- 送った
- やることは決まったのでやる
- [x]信号処理の過去問をある年度の分終わらせる
- こっち関連
反省点
先週言ったように朝起きたときにダラダラしないやつはいい効果がありそうなので続けたいと思います
ダラダラしてしまうということで,今週も気持ちの切り替えが自分は苦手だなぁと感じたんですが今週やってよかったのは時間を区切ってやるやつ(いわゆるポモドーロテクニック)
25分やって, 5分やって25分休むを無限にやるというすごく単純な方法ですが,ダラダラやってしまう僕には効くので続けていこうと思います
メンタルがやれたときの対策
思った以上にアイドルの動画を見ると癒やされますね
受験期もそうだったんですが, 僕の場合辛いときには思った以上にアイドルが効果的なようです
誰がかわいいとか言うと角が立つので何も言いません
みんなかわいいよ
ギリシア神話・超簡単OSSコミッター
前々から学習用サイトを作りたいなぁと思っていたのですが, 妄想あるあるとして,無限に膨らんでいくしやりたいことって細かくは少しずつ変わるので実装できる力がつくのを待っていると絶対にできないんですよね
とりあえず少しずつでいいからやりたいことに近いことをGithub
に書いていこうと思います
本当に全然中身が充実していない(他のwikiへのリンクとか混じっているし似たようなサイトもありそう)ですが,2Aで後輩がこの学科に入ってくる頃にはもう少し見られる内容にしたいですね...
僕の悪いところとして手を先に動かさないところがあると思うので, 徐々にできる範囲で作ってみては改善するという風になるぞぉぉぉ...
もし間違った内容があったらpull request
をしてください😇
世界で一番簡単にOSSのコミッターになれる方法だと思います笑
You can (not) 言い訳する
あんまり環境を言い訳にするのはかっこよくないよねという話です
自分は色々手を出してしまう人間なのですが,これで自分を正当化してしまう節があるなぁと思うことがありました
「人の振り見て我が振り直せ」なんてことわざがありますよね.
最近だと我が振りを直さずにただ人の批判だけをしている人が目立つ気がします(?)が,やっぱり自分の振りを直さないとねということを感じることがありましたー
勉強している自分って正当化しやすいですけど, もっと謙虚に生きてもっと高みを目指したい(J-POP風)
よく知りなさい!襟を正して勉強をしなさい!真実を伝えなさい!
追記
Githubがtexのレンダリングをしてくれないので途方に暮れています
追追記
Jupyter Notebookならtexが書けるらしい
TODO: Markdownもそっちで書けるし,試してみる
来週までの目標
人間関係をReset-Set型と人生Delay型
tags: 情報
人生の7割はフリップフロップで説明できる
はい.学科の人が7/31で期末試験が終わるところ,まだ米国に3週間滞在するピカチュウです
今回は実は遷移を理解していないけど,まあそういうもんだよなとされがちなフリップフロップの遷移を丁寧に追っていこうと思います
なにせ,
A flip-flop accounts for 70 % of life
こんな大事なものをなんとなく真理値表だけ見てわかった気にっている人は科学技術の恩恵に与ろうだなんて思う資格はありません!
即刻家に帰ってハードオフに電子機器を売って,電子炊飯器を使わずにご飯を炊いて,まずい飯を食いながら育ててくれた人と電子機器に感謝しなさい!
そもそもフリップフロップとは
フリップフロップ (flip-flop) は、二進法の基本である1ビットの情報を一時的に"0"または"1"の状態として保持する(記憶する)ことができる論理回路で、順序回路の基本要素である。 2
"ある"と"なし"という2つの状態を保持することができる論理回路のことですね!
これによって,レジスタ,メモリ,キャッシュなどが構成されているので考案してくれた先人に感謝!
突然LINEを消すやつ
質問です!
あなたは突然SNSのアカウントを消したことはありますか?
僕ですか?もちろんYES!
僕と似たようなフリップフロップがRS型(Reset-Set型)フリップフロップです(SR型とも呼ばれます)
こいつは突然今まで保持していた値を消してしまうタイプのやべーやつ
もしこういう人と長く友達でいられる人間は将来どこかで損をしそうですが強く生きてほしいです
Delayのある俺の人生はもうおしまい
浪人(留年)で2年も人よりDelayしている?
引きこもって10年目?もう社会には復帰できないDelay?
僕ですか?もちろん浪人してます!Delayバンザイ!
そんな人よりも遅れちゃっていると感じちゃいがちなあなたにはD型(Delayed/Data型)フリップフロップ!
こいつは直前の信号を出力する心の優しいフリップフロップです
こんなに優しいフリップフロップばかりじゃないってことを社会に出て知ることになるのはまた別の話...
遷移
御託が長い
では具体的に遷移を眺めてみましょう
RS型
真理値表は次のとおりです
ちなみにS,Rは"Set","Reset"を表しています
Qはよくわかりませんがなんかそうなっています(誰か知っている人教えてください><)
S=1, R=1のときは動作が保証されていないので注意してください
S | R | Q_next |
---|---|---|
0 | 0 | hold Q_old |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | prohibited |
RS型フリップフロップ自体
どちらも0だと値が保持される
片方が0でもう片方が1のときは次のS(Set)の値になる
D型
真理値表は次の通りです
D,Cはそれぞれ"Data","Clock"を表しています
また,Cの"↑”,”↓”はそれぞれ1, 0のことです
D | C | Q_next |
---|---|---|
0 | ↑ | 0 |
1 | ↑ | 0 |
x | ↓ | hold Q_old |
D型フリップフロップ自体
C=1(Clockが立ち上っているとき)
C=0(Clockが立ち下がっているとき)
こう見ると,D型フリップフロップは最終的にはSR型フリップフロップと同じ形になっていることがわかります
同じ働きをしているので当たり前(?)
まとめ
フリップフロップと同じ動きをする人間と関わらないと人生の7割,得をすることができます
ちなみにこの記事を書いたのは一応電気系なので電気系っぽいことも書こうかなという動機からでした
ではまた