はてなキーワード: 数値計算とは
SVD (特異値分解) について、異なる難易度で説明します。
SVDは、大きな絵を小さなパーツに分ける魔法のようなものです。この魔法を使うと、複雑な絵をシンプルな形に分けることができます。例えば、虹色の絵を赤、青、黄色の3つの基本的な色に分けるようなものです。
SVD (Singular Value Decomposition) は、行列を3つの特別な行列の積に分解する線形代数の手法です。
A = UΣV^T
ここで:
SVDは次元削減、ノイズ除去、データ圧縮などの応用があります。主成分分析 (PCA) とも密接な関係があり、多変量解析や機械学習で広く使用されています。
SVDは任意の複素数体上の m×n 行列 A に対して以下の分解を提供します:
A = UΣV*
ここで:
1. A の階数 r は、非ゼロ特異値の数に等しい
2. A の核空間は V の r+1 列目から n 列目によってスパンされる
3. A の値域は U の最初の r 列によってスパンされる
5. ||A||_2 = σ_1, ||A||_F = √(Σσ_i^2)
応用:
1. 低ランク行列近似 (Eckart–Young–Mirsky の定理)
高度な話題:
6. 量子アルゴリズム:
7. 非線形SVD:
指数関数 \( y = e^x \) を x で0.5回微分することは、一般的な整数次数の微分とは異なり、一般的な微積分の範囲を超えた「分数微分」という特殊な概念に関わる。
分数微分の定義や計算にはいくつかの方法があるが、一つの広く使われる手法はリーマン-リウヴィルの分数階微分である。この方法を用いて \(\frac{d^{0.5}}{dx^{0.5}} e^x\) を計算することができる。
\[ D^{\alpha} f(x) = \frac{1}{\Gamma(n-\alpha)} \left( \frac{d}{dx} \right)^n \int_0^x (x-t)^{n-\alpha-1} f(t) \, dt \]
ただし、 \(\alpha\) は分数階(ここでは0.5)、 \(n\) は \(\alpha\) より大きい最小の整数(ここでは1)、 \(\Gamma\) はガンマ関数を表す。
簡略化して言えば、分数階微分は膨大な計算を伴うが、\(\frac{d^{0.5}}{dx^{0.5}} e^x\) の場合、結果としてまた別の指数関数と特殊関数に帰着することが多い。具体的な結果としては複雑な式になるが、代表的な特殊関数である「ミッタク・レフラー関数」が利用されることがある。
このように、個別に詳細な計算をするには高度な数学的手法が必要となり、具体的な数値計算は専用の数値解析ソフトウェアを用いることが推奨される。
結論として、指数関数 \( e^x \) の 0.5回微分は一般的な関数にはあまり見られない特殊な形を取り、分数微分の特殊な理論を用いる必要がある。
これはデカいと思うんだよな
Unityとか、Unrealとか、物理エンジンもBox2DとかBulletとか、当然昔はなかったので、みんな自前で書いてたはず
例えば、スーパーマリオの物理挙動とか衝突判定は当たり前だけど自前で書いてたはず
でも、今はブロック崩しさえUnityとかUnrealに含まれてる物理エンジンで剛体力学使って書けちゃう
なんかそういうの無駄な計算力だよなと思うけど、まあ書けちゃう、動いちゃう
昔はゲーム作るときって、リードプログラマーが1人いて、他も数人で、少人数で職人芸的に作ってたわけだよ
全て自前でやらなければいけないから、簡易的なものを作るにしても、一応大学でやった物理を再度勉強したりするわけだ
剛体力学とか、流体力学とか、材料力学とか、そのための数学とか勉強し直したりした
あと、ゲーム業界がバブル?だった頃は、海外なんかでは物理とか数学で博士号取ったような奴までゲーム産業に入って来た
彼らはゲーム業界に進まなければ、銀行とか保険会社、証券会社とかもある、もっと高給な仕事がいっぱいあるはずなのに、薄給のゲーム産業に飛び込んできた
彼らが高度な知識で色々な試みをしてくれたおかげで、今のゲーム産業があると言っても過言ではないと思う
だって、日本のゲームってどれも枯れた技術の水平思考ばっかりなんだもん
悪く言えば、保守的、必ず作り上げるという意思から石橋を叩きすぎたようなものを作る
例えば、初代のバイオハザードだったか、カメラ固定だったじゃん
今どきアローン・イン・ザダークかよwって思ったよなw
あの頃、自分はPCでDOSとかで普通にFPSやってたから、あくまで技術的にだけど、アホじゃないかと思ったんだよな
でも、周囲のプログラムとかIT業界に関係のない知人とかは喜んで遊んでる
日本のバイオが固定視点なのに対して、海外勢はFPSとか三人称視点ちゃんと作ってたよな
日本でFPSっぽいの初代PSでちゃんとやってたの、攻殻機動隊だと思うんだよね
今に至るまで、最も原作の意味をくみ取ってたアニメだったし、石野卓球なりの曲も良かった
時は流れて、今の日本のゲームもみんなUnityとかUnrealになった
Godot選択する人もいるかもしれないけど、あれ、良さそうだと思ったけど、情報少なすぎるよね
ソースは公開されてるんだから、ソースを読め的な感じもしたし、今どき?
独自スクリプト勉強するのもなんだな、と思って、ちょっと使う以上に使う気になれなかったんだよな
調べてもらわなくても、まあ、分かるだろうけど、UnityとかUnrealの開発者、日本人とかもいる、はかなり著名なゲームを開発した人も含まれてるよね
彼らは、当たり前だけどUnityとかUnrealがない時代は、当然自分たちで全てを書いてきた人たちだ
リードプログラマーが一人といったけど、かなりの分量をリードが書くはず
ほとんど一人開発と言ってもいい
あと、そういうリードプログラマーは職人みたいなものなので、自分で書いた数学ライブラリとか、物理エンジンとか、持ち歩いて会社を転々としてる人もいたはず
厳密には権利の問題もあるかもしれないけど、そういう優れた人材は引っ張りだこなので、会社を転々として、
その場その場で、自分で1行目から書いた、自分しか持ってない自前のvecmathライブラリとか、物理とか、ノウハウを財産として持って移動しまくってた
で、そうやって業界をサバイバルしてきた人たちのトップランナーが、今はUnityとかUnrealで開発とか営業とかやってる
多分だけど、もうコアな部分を書くことなんてなくなっているだろう
Unity、Unreal以前は、行く場所行く場所で、ゲームエンジンレベルからゼロから書いていた
でも、Unity、Unrealはそれを当たり前だけど共通化するわけで、そしたら一度書けば、それはずっと使われるコードになる、当たり前のこと言ってるけど
で、困っちゃうのは、そんなトップランナーになれなかったゲーム開発者だ
ゲームエンジンを開発するための、数学や物理、コードに関する能力、特にCやC++が多いだろうけど、そういう能力はある
自分は凡人以下だろうけど、かなり凄い人もいるんだろうけど、そういう人も含めて、ゲームエンジンレベルから作る職人芸は無意味、無価値になった
もちろん、まったく無駄にはならない
結局、Unity、Unrealを使うときに、単に使うだけでも中の挙動を勉強しなければいけない
でもね…
もう、ゲーム開発がコードをガリガリ書く仕事というより、コンテンツを作る作業にほぼなっちゃってないか?
3DCGのモデリング、シェーダー、ゲーム本体も含めて、箱と箱を線で繋ぐような作業でゲームができるようになってる、とっくになってる
そうすると、もうC、C++でガリガリゼロから書いていた人とか、
それこそ、PS2の開発はよく知らんが、悪評が高い、あれはOSレベルから書かされたりしていたように聞いてるし、
そういう人たちもゲーム開発の現場でそういった知識が活かされることはもうない
逆に、北欧で生活保護もらったりしてただろうNotchのマインクラフトとかの方が成功しちゃったりしてるよね
あれはゲームエンジン?と言っていいのか分からんけど、あの独特のボクセルの世界はゼロからJavaで書いたものだ
彼は時間制限でゲームを開発するイベントに数多く参加していて、いつもJavaでサクッとゲームを作っていた
だって、プロのゲームプログラマーっぽくはない、Javaでしか書いてないとか、それこそJavaの方が生産性が高いみたいに言ったら、日本のゲーム業界だったら鼻で笑われてただろう
彼はマインクラフトの前に、ゲーム会社に所属していたし、そこで開発していたのは、世界をすべて緻密に構築するようなゲームだったらしいけど、
自分の予想だけど、そんなの全地球シミュレーターの簡易版みたいなもので、無謀な試みというか、かなり複雑な仕組みになっていたはずだ、自分が聞いてたら、実現できるかさえ怪しい、と思っただろう
彼は世界を緻密なボクセルやポリゴンではなくて、大きなボクセルで実現することにした、まずそこが出発点であることは間違いないだろう
そこからセルオートマトンで川とか水を実現できるんじゃないかみたいに発想が膨らむよね、プログラマーなら
話をまとめると、ITがつまらなくなった話はゲーム開発にも置き換えることができる気がしている
昔のゲーム開発に少しでも携わっていた自分のような人たちは、今の時代では老害だということは重々承知しているし、
多分、今、ゲーム開発に興味がある子供とかがゲームに望んでいること、ゲーム開発でやりたいと思っていること、と自分たちの世代のゲーム開発者がやりたいと思ってたこと、やってきたことは、もう全然乖離してるんだと思う
考えてることが乖離してるんだから、話が通じないのはおかしくない
違う世界を生きてる人、偏差値がいくつ違えば会話が成立しないなんて話もあるように、今の子供たちと会話が成立しないのはおかしくない
そして、当たり前だが、現状を正しく認識しているのは、今の子供の方の可能性が高い
基本的にはCやC++で膨大なコードを短期間に書くことが要求される仕事だった
それが今の子供たち、というか、今の時代の環境に慣れた人たちにできる仕事とは到底思えない
そういうトッププレイヤーは、今はAIなり何か、最先端のものをそういった企業のコアの部署で、コアなものを開発しているはずだ
でも、そうなれなかった人たちはどうなる?
高度な彫り物とかするような職人が、NC工作機器とかで彫り物をするようになったら、職人は必要なくならないか?
伝統工芸だの、人間国宝だの、そうやって手で作ったものの方が温かみがあるみたいなオカルトに守られて生きられる人間がどれだけいるだろうか?
その、人間国宝レベルの人たちがUnityやUnrealのような企業に吸収されていく
あとは過去に開発したゲームのネームバリューを活かして講師職になるとか、そういう感じだろう
そうなれた人間がどれだけいるだろうか?
優れたリードプログラマーに触発され、職人になるべく数学や物理、プログラミングの知識習得を重ね、朝から晩までひたすらコードを書いていたのに、
今の生成AIは大したことないと自分も思うが、驚き屋wwwとか馬鹿にしてる奴らは、いつかうっかりAIに職を失われないか、よく普段から考えた方がいい
あと、AIに職を奪われたくないから、プログラミング頑張る、みたいな奴は、俺的には間違った頑張り方だと思うw
そのプログラミング自体がなくなるかもしれない、って言ってるんだって
技術習得とか、自分の技術でマウンティングし合ったりする暇があるなら、別業種のことでも勉強した方がいい
そういえば、優れたアニメーターだった人が、作画として年齢的に限界にあるし、親族にもアニメーター辞めるように言われてたらしいけど、
ある日バイク事故にあって、アニメーターを続けられなくなって、その人は年齢的にギリギリで清掃車運転する仕事についてたはず
立派な公務員になれて、空いた時間で絵を描いては、市役所などで販売してたはずだ
何が人生として幸運かなんて分からないけど、必ずしもアニメーターが庵野とか宮崎駿を目指すのが幸せなのだろうか?
どこかで自分の仕事を辞めて、それを趣味にして、安定した仕事に就いた方が、心の平安が得られるのではないだろうか?
というか、富野アニメなんか、やたら名誉を優先して失敗する人が出てくるよね
長い人生生きてきた老害には、ああいうのなんかよくわかるんだよね…😟
みんなが驚き屋って読んでる人たちは、基本的にPythonとかも書けないし、計算機科学とか数値計算の知識とか曖昧というか、まったくないような輩がいるし、
元の文章である「ITがつまらなくなった」だったかの文章にもあったように、ビジネスのアイディアだけある胡散臭い素人が乱入してきた感があるわけだけど、
でも、老害って若い世代とか新しいものを疑ったり反発しがちなんだよな、自分も含めて
だから、たしかに驚き屋の連中のかなりは胡散臭い、詐欺師みたいな、出まかせで大金持ちになったスティーブジョブズの極小コピーみたいな連中ばかりではあるけど、
でも、生成AIとか、これから汎用AIとかもどうなるのか分からんけど、どんどん素人に有利になってくと思うんだよな
だって、UnityとかUnrealで作ってる世代はガリガリC++書くのなんて馬鹿げてると思ってるだろうし、
プログラミン技術がもっと怪しいのはWebアプリ界隈も同じだと思うんだよな
RailsやPHPで書いてる連中と、C++で書いてる連中の世界は、見えてる世界がかなり違うんだよ
そもそも、そういう輩はLinuxとかWindows上で書いてるわけで、いわゆる家庭用ゲーム機とかでコード書いたことないだろ?
でも、Xbox発売時にビルゲイツが言ったように、(なんかSEGAだかソニーだか知らんけど)所詮ゲーム機なんて機能が制限されたパソコンだよね、
nVIDIAとかGPUカードどんどん作るんだし、パソコンの方が最先端のグラフィックスが体験できるよね、
みたいに言いつつ、Xbox発売したわけだけど、自分もそう思ったけど、あの預言は的中したよね
情弱と信者だけ任天堂Switchとか使ってるんであって、ビルゲイツが言ったように、ゲーム機の中身は機能が制限されたパソコンだよ
昔、TRONというプロジェクトがあって、あれを孫正義がクソミソに言ったという話があったと思うんだけど、
日本だけで閉じたプロジェクトを出発させても、アメリカの豊富な資金で、カネと資源という暴力で作られるオープンな世界に絶対負ける、ようなことを言ってて、
当然、そのあとIntelなりWindowsに日本は負けるし、半導体としては台湾に90年代で既に負け始めてたわけで、
家庭用ゲーム機も同じで、家庭用ゲーム機の新しいバージョンが出るまでのスパン、機能は固定されるから安定して確実に動作するゲームが販売できるとか、
色々利点はあるんだろうけど、でも、その間に日進月歩で、それこそnVIDIAみたいな企業がどんどん進んでいくわけで、
グラフィクスシンセサイザーwとか名前はカッコいいけどさ、名前に準じてたら、今頃ソニーNVIDIAに勝ってない?違うでしょ?
話を戻すと、どんどん素人が参入してきて、その素人が頓珍漢なことを言ってるのが不愉快だ、許せない、驚き屋氏ね、みたいな気持ちは分かるけど、
素人が参入できるようになった、というのは、世の中の流れが変わったわけで、そういう若い世代をただバカにするというのは、老害しぐさだよね
気持ちは分かるけど、ドラえもんのように生暖かく見守るとともに、老害も新しい技術とか、素人が驚いていることをちゃんと咀嚼して、吸収していく必要があるんじゃないの?
ちゃんと大学、大学院で計算機科学、情報科学をやってきったわけだし、あやふやな知識でイキってる若者に対して老人が取るべき態度ってそういうもんじゃないの?
例えば、子供が初めて何かを見て驚く、それを大人が見て、そんなのはありふれてる、驚き屋wwwと思うだろうか?
子供は素人だから初めて体験したわけで、なぜ子供がそれを見て驚いたのか?とか、子供の目線でちゃんと考えられる人は、教える人に向いてる人だと思う
他人に教えることがうまい人は、自分の経験、能力も整理することがうまい
もともとPythonは世界的に見ればとても成功した言語だった(Python2のころ)。
PythonにはPEPという言語の仕様を決めるための文書があってこいつがOSS開発者の中では非常に受けが良かったんだ、Pythonの開発者であるGuideは「優しい終身の独裁者」などと揶揄されていた。
この時代に作られた多くのPythonによる資産が多くのOS(特にLinux派生のOS)に組み込まれたために、OSにはPythonがプリインストールされることになり、そして未だに存在し続ける理由となったんだ。
プリインストールされているPythonのバージョンを確認すると2系であることが分かるはずだ。
しかしPythonは2から3へのバージョンアップで多くのユーザーを失って死に体になってしまったんだよね、Railsが台東したあたりからプログラミングに興味を持った人からみると死に体のPythonとイケイケのRubyを初めに見てしまったからRubyのインパクトが強くなってしまうのは仕方ないね、でも、もともとはPythonのほうが圧倒的にユーザーもシェアも多かったんだよ。
しかし、PythonにはPythonによる優秀な資産があるので簡単には死ななかったんだ。
中でも数値計算に使えるライブラリを持つ言語としてはPythonが最もポピュラーだったことから機械学習とセットで一気に息を吹き返すことになる。
とはいえ、この頃からは当初のPythonの理念とはかけ離れた金の臭いにつられたようなユーザーが多く参入してきたためにGuideも疲れ果ててしまい開発者の座を退くことになってしまう。
今やPythonは多くのメディアによる祭り上げによって金の臭いにつられた人間が集い金を稼ぐ手段として用いられており、そういった理由からPythonの本やらなんやらが多く夜に出回っているんだよ。
あぁ、私の好きだった頃のPythonはもう帰ってこないのだ!
製造業は古い、時代はソフトだ、サービスだ、GAFAだと言っている間に、ハードもソフトも強くなければどうしようもなくなった気がしている。
そして、製造装置の最適化だったり、OSや、OS開発に耐えられる開発環境(ハード・ソフト両方)必要だったりしている。
あと、抜けているのは製造業のためのソフトではないだろうか。TSMCだと「cuLitho」のようなリソグラフィのためのソフトのようなものだ。
物理法則をコードに起こし、数値計算して、ハードを差別化するためのソフトだ。
検算しろとは言うけど必ずしもできるとは限らないんだよな。そもそも計算できないからコンピューターにやらせてる処理もある。理論的には正の値になるはずだけど、ごく稀に誤差でゼロや負になった時に、バグるみたいなのも再現難しくて辛い。
メモリーまわりは、高速化のために生ポインタでアドレス計算してる時はどうしてもミスる時がある。偶然ゼロ初期化されてるところを見てればそのまま動いちゃうけど、実行環境が変わると違うとこ見てて落ちるみたいなパターンも辛い。
ランダム性を持たせた処理というのは、ある種の最適化とか数値計算とか。そもそも答えを出すために処理してるから、正解がわからないしなかなか再現しないこともあって辛い。
Bは、まったくあてにしない。
そんな問題をとかせる。そういうのってなんだろ?適当なのナイか?ないのか?EFに角はやす問題。これはうまくいくかどうかわからない。自明ではない。いかなかったときのcontingencyまでかんがえてやらなきゃなんない
よくよく見たらそう(ルドベリ)ではなく、イージーだった。_| ̄|○。たしかあの曲線は数値計算でもとめるもの。いろいろな人がいろいろな方法でもとめている。どれか気に入ったやつ一つひっぱってくる。適当な関数もしくはNNで回帰できないのか。
いろいろなケースにたいしてゼロ極限でのエネルギーをもとめる (BSE)→数値計算→曲線をえがかせる
うえで描いたやつを適当な関数ないしニューラルネットであてはめ。おそらくビッグデータにする必要あるよな。○○構造の予測問題の文献にのっているデータ数をかぞえてみよう。
Bはあてにしないって書いた。しかしデータ生成はリスキーなので活用できる人材いたら活用したい。あの辺の帯にある物件を金出して入手できればいいんだけどなぁ。正攻法だと入手困難だから、ちょっとトリッキーな方法を考える必要。アソコに頼むと・・生成に失敗したときに責任問題が発生するからなぁ。うまくいかない可能性あるけどって但書してから頼めばOK?うぅんむずかしいところやな
最近コンピューターサイエンスがプログラマーに必要か否かみたいな話が上がっているが、そもそもコンピューターサイエンスって何だよ。どこまでの範囲をさしてんの?
ググって出てきた情報を整理しただけなので詳しい人、補足・訂正よろしく!
https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf
CS2013はACM/IEEE-CSによるカリキュラム標準。
ACM(計算機協会)はコンピュータ分野全般の国際学会、IEEE-CSはIEEE(米国電気電子学会)の中にあるテクニカルソサエティ。
https://www.ipsj.or.jp/12kyoiku/J07/20090407/J07_Report-200902/4/J07-CS_report-20090120.pdf
J07-CSは一般社団法人情報処理学会がCC2001CSをベースにアレンジを加えたカリキュラム標準。今はCS2013を反映したJ17-CSがあるらしいけどその辺は良く分からん。
https://www.ipa.go.jp/files/000024060.pdf
J07ーCSから抜粋。CS2013と比較するとナレッジエリアがあったり無かったり。