Flutter
ぽるぽるです.
今日の日記
友人のGCNのインストールなどをしていました.
深層学習系は興味あったので友人から論文を紹介されたものと、それに関する説明を受けてやってみました.
グラフを可視化して表示したりニューラルネットワークに使いやすいみたいです。
まだいろいろ実験段階で何もわかっていないので試してみたいです。
あとはFlutterをしようと誘われたので久しぶりに触っています.
アプリ開発も面白いですよね.
今日は土曜日なのでほとんど何もしていません\(^o^)/
明日のABCを頑張るのとゼミの資料作ります。
日記だなぁwww
今日はまったり
ぽるぽるです.
今日はCUDAについて少し調べていたのと、大学で使う論文を探していました.
大学でGPUを使ってDeepLearningやデータマイニングをするためにセットアップを任されたので調べてみたところCUDAというものを見つけました.
GPU向けの汎用並列コンピューティングプラットフォームらしいです
C/C++でできるみたいなのでみんな取り組めるしいいですね
PythonもPyCUDAとかがあるとか.
セットアップの仕方とか試運転とかしたいので早く大学に行きたいな〜とか思いながら検索していました.
今日はあんまりちゃんと調べていませんw
論文の方はdblpで機械学習系の論文のタイトルみて面白そうなのメモったりしてました.
簡単にAbstract読んだりですね.
暗号とかセキュリティも興味あるしデータマイニングも興味あります.
情報科学は面白い分野が多いのでいろいろな話を聞くのが好きですね.
あとロマンも多い.
競プロをしていると、Twitterですごい方をたくさん観測するので日々勉強になります.
毎日知らない単語がTLには流れますねw
どんだけ知識あるんだろ....
かっこいい
いつかあの人たちに追いつけるようなつよつよになりたいな
ここから適当な独り言
CS系は幅広く知識つけたいなとおもってるけど、ネットワークとか学んでも詳しいことは忘れちゃったりが多いので苦労してます.
脳に一発で定着してくれ〜〜〜〜〜〜
最近はHTML&CSSやUbuntuでCUIをいろいろ試してみたりしていて結構まったり楽しみながらやっていますね.
そろそろ卒論ちゃんとしなきゃ。。。
あと今日虫歯治療しました.
線形連立方程式を解くメモ
どうも,ぽるぽるです.
大学の研究室に配属されゼミで[アルゴリズム設計マニュアル]という本を読んでいます.
その中で 線形連立方程式を解く という分野の担当になったので、軽く調べたことをまとめることにしました。
入力:サイズm×nの行列Aとm×1のベクトルb
問題:Ax = b を満たすベクトルxは何か
ようは連立方程式を解けってことですね.
これを解くためにいい方法が複数あって、、、
①ガウスの消去法(掃き出し法)
1:前進消去
行列の掃き出し法を使って変数をどんどん減らしていき x = a の形をつくる
2:後退代入
1で作った形からどんどん逆に戻していき、変数をすべて求める
O(n^3)でできるが、途中割り算があったりで数値がバグったりするかもだからちゃんとしたサイトでうまく操作されているプログラムを使うのがいいみたい。
自分で実装するのは大変っぽい
②LU分解
Ax = b という行列においてAに前処理をすることで効率よく計算できる
Aを下三角行列Lと上三角行列Uに分解することをLU分解という
Ax = b = (L U)x = L (U x) = b
三角化された連立方程式はn^2時間で解けるので効率がいいみたい
y = Uxと置くとAx = bは次の連立方程式となる
Ly = b
Ux = y
これについてまず上の式からyを求め、次に下の式を解きxが求まる
LU分解にO(n^3)、y,xを求めるのO(n^2)が2つで連立方程式を解くことができる
これについてはどの部分がいいのか調べてみると、Ax = bのbが複数ある場合に役に立つみたい
解きたい連立方程式が複数個あって、係数行列の部分が毎回同じならガウスの消去法を複数回つかうとn*O(n^3)で計算がいっぱいだけどLU分解を使うとLU分解にO(n^3)でその後各bに対してO(n^2)で解が求まるので計算量を減らすことができるみたい
LU分解は初耳だったので調べてみて結構面白かった
他にもいろいろな解き方があるみたいなので、興味があれば調べてみると面白いかも
勉強のメモ程度でしか書かないので詳しいことは調べてみてください.