オンボロPCにLinuxをインストールしてみた
わくばです!
僕入学時にWindowsのパソコン購入したんですが、当時PCに関して全く詳しくなくてあんまり興味もなかったのでめちゃくちゃ適当に選んでしまったんです。結果、四年経った今、重すぎて全然使い物にならなくなってしまいました笑
解決策として、Windowsを勉強して可能な方法をあらかた試すか、もうOSごと変えてしまうかといったところでしたが、後者に決めました。LinuxOSの勉強にもなりそうだし、そもそもWindowsより軽量だし使い勝手が良さそうなので。
以下に僕が参考にしたページを貼っておきます。
https://linuxfan.info/make-linux-install-usb-on-windows
LinuxOSというのはOSS(オープンソースソフトウェア)の一つで誰でも無料でダウンロードできる優秀なOSです。OSというのはコンピュータのハードウェアとソフトウェアを仲介して制御するソフトウェアです。一文に「ソフトウェア」が二回出てきましたが普段僕らが画面上で使っている殆どのソフトウェアはアプリケーションソフトウェアという、いわゆるアプリです。対してOSはシステムソフトウェアと言われ、より下層で機能するソフトウェアで、アプリケーションソフトウェアとは全く違うものです。コンピュータが動作するためのいちばん大事な部分と言って良いでしょう。有名なものだとWindows、MacOS、iOS、アンドロイド、Linuxとかです。この中でLinuxというのは設計思想そのものが商用でなく開発者ようにできています。それゆえオープンソースでディストリビューションという形で配布されていて、様々なところで使用されているんです。
そんなLinuxですがこれはシリーズの名前でして、更に目的や好みに応じていろんな種類があります。alpineという超軽量のものや、Debian系というメンテナンスのしやすいものなど非常に多くのものがありますが、僕は全然詳しくないので説明は避けます笑
僕は今回Ubuntu系という初心者でも使いやすいものを選びました。ウブンツとか読むらしいです。ユーブンツって言ってしまうとLubuntuという別のOSと捉えてしまうらしいです。確かに「L」を「Y」と発音する国結構ありますからね。
やり方は全部上記のサイトに載っていますが、軽く説明すると
USBをドライブとしてOSをぶっこむみたいです。PC一つでもできました。
実際にやってみてはじめて知ったのはISOイメージというファイルですね。これは実際に今回USBに入れてOSはとして読み込まれたファイルなんですが、こいつのおかげで物理媒体なしにOSの配布が実現したようです。すげー。
Ubuntuを実際使ってみるとやはりWindowsやMacに慣れていたぶん最初は使いづらかったですが慣れるとなかなか快適です。動作も軽いしデザインもクール。電源入れてから全然デスクトップ画面にならなかったPCがさくさく動くようになりました。うれしい。
他のOSとの違いを一番感じたのはサーバが自由に建てられることですね。ほんとにサービス提供者側を想定して作られているんだなと笑
デメリットとしてはOfficeみたいなツールが充実していないところですね。ビジネスには向かなそう。
こいつを使ってどんどんプログラミング勉強していきます!
次はSSHでMacbookからログインしてみようかな。では。
独学で微積分・線形代数を学びたい人にオススメの本
わくばです!
医学部では疫学で統計学の知識が必要なくせに大学レベルの数学を取り扱う授業はありません。なので僕は独学で一応、微積分と線形代数は学びました。
数検1は持っていませんので大した実力はないです笑 でもだからこそ僕みたいなレベルでも勉強できる教材を選定したので、きっと独学に苦しんでいる方の参考にはなれるかと思います。
まずはおなじみのマセマシリーズです。
言わずとしれた初心者本です。その行間の埋め方には初心者もびっくりです笑
これでもかと解説がされており、文系出身でもイケると思います。理系にとってはむしろ五月蝿いかも笑
ただその丁寧さ故に文字数が多く逆に読みづらいというのは否めません。あと個人的に気になるというか注意していただきたいのが、数式や式変形過程の解説のみであまり概念的な部分の説明は画期的ではないです。式変形理解の補助輪が手厚いという意味では良いですが、難しい概念が難しいまま解決しない時があるので要注意です。
さて続いて一時期有名になった青チャート!今も有名かな?笑
これは加藤先生というつよつよ若手数学者が書いた本です。白がテキストで、白い方の例題を青の方で解説という形になっています。なので実質セットですかね。この本の良いところはコンパクトなくせに数学的厳密性にちゃんとこだわっているところです。表現や解説も平易で、厳密さを書かない程度にわかりやすく噛み砕き、読みやすい。僕はこの本をメインにしていましたね。内容のピックアップも非常に適切で、教養数学として最適と感じました。
最後は弱点克服シリーズです。
これはかなりオススメですね。ほぼ問題演習の本です。
大学レベルの数学ってあんまし演習書親切じゃないし、多いし、しんどいんですがこの本は100題ほどに絞られていて適度な量です。しかも弱点克服とあるように痒い部分だけピックアップされています。解説は親切かつシンプルで、テーマがはっきりしているので解きやすいです。大学レベルの数学って正直読んでてもよくわからないし集中も切れやすいので、こういったほどよい演習本は重宝します。
なにか他のテキストと一緒に買うのが良いかもしれませんがこれ一冊でも内容は理解できるようにできています。
以上です。僕は学校では数学の授業なかったのでガチ勢には物足りない本たちだったかもしれませんが、これから数学に手をつけてみようという方にはおすすめです!
では。
医師がプログラミングをできる必要はあるのか
わくばです!
今日は僕自身の活動指針を根本から、しかも自ら揺るがしにいきます笑
ですが、自分が現時点でこの問にどう結論もしくは折り合いをつけているのか、ひいては何をモチベーションとしているのかはっきりさせておこうと思ったんですよね。
後で見返して答え合わせをしたいというのもありますし、ご一読くださった皆さんのご意見もぜひ拝聴したいというのも理由にあります。
結論から申し上げて、医師にプログラミングスキルは必要ないです。笑
むしろそっちに時間使うより、どうせなら心電図検定やTOEICといった明らかに必須なスキルに時間を使ったほうがいいでしょう。時間とお金、気概があるならUSMLEを受けて米国医師国家資格ECFMGまで取りに行くのも一つの道でしょう。
ではなぜ5年にもなった今頃プログラミングなんかはじめたのか
僕がプログラミングを学ぼうと思った理由は主に2つ
医学的知見の不確実さ、そして非学問的側面における開発研究の重要性に気づいた
僕の大学は3年でCBTを受け4年から実習が始まります。なので臨床現場での経験は現在二年目で、その1年半の間に様々な患者さんを担当させていただきました。患者さんのお話を聞いたり診察したりしながらいろんな知識をつけてきたつもりですが、正直教科書的な知識はあんまり役に立たんなぁと感じました。役に立たないというか、実際の症例だと非典型例の方が多すぎるんですよね。もちろんあらゆる症候や検査の感度・特異度を暗記すれば確度の高い診断ができるでしょうがそれが身につく頃には残りの医者人生どれだけ残っているのやら、、、
また、いろんな僻地で実習させて頂いた際に、十分な設備がないために治療が間に合わないケースや、患者さんが病院に来る体力がないために重症化するなど、医学そのものがいくら進歩しても解決しようのない問題をいくつか見てきました。
僕は、医学分野で知見を尖らせるより医学の普及や設備に力を割いたほうが、多くの命を救えると考えています。マンパワーばかり増やすのはもう限界だと思います。医療資源の分布に医療の質が左右されない仕組みづくりを行っていかないと、労働者人口が減少し続けている日本は沈没します。
僕はこういった分野の開発にはやはりIT技術が鍵になるのではないか、と考えています。その入口としてプログラミングスキルから学ぼうと考え至ったわけです。
IT技術を用いた医学の新技術や新パラダイムの出現は時間の問題
インターネットやコンピュータは避けて通れない世の中になりました。新しい医学技術はほぼ間違いなくIoTやクラウド、AI、ブロックチェーンなどを始めとした新しいIT技術とともに生まれます。そういった技術が生まれてから後手後手にキャッチアップしていくのは医者をやりながらは厳しいでしょう。だから多少なりとも時間のある学生時代にIT技術には抵抗感をなくしておく必要があると思います。
余談
僕は現在AIの勉強をメインにしており、G検定も一応取りましたが、実はAIである必要はないんです笑。医学とのシナジーがあって潰しが効きそうだからAIの勉強をまずはじめてみようと思っただけで、アプリ開発などのほうが僻地医療の改革に役立ちそうであればそれもありです。
僕の目的は学生のうちにプログラミングスキルでマネタイズすることとかではありません。僻地を事実上僻地でなくすことです。物理的には僻地でも、心理的・論理的には僻地ではなくしたいのです。そのために使えるものがプロックチェーン技術であればそれを勉強しますし、クラウド技術などの導入で改善できそうであればそれを取り入れます。
この目標の達成のために最も大切なことは、技術力ではなく発想力・転用力であると思っています。なのでまずは広く浅くどんな技術があるのか知るところからはじめないといけないと思っています。AIの勉強を主軸にしつつ、もっといろんな技術に貪欲に手を出していいきます。
G検定の所感と、個人的に役に立った教材
わくばです!
G検定、無事合格でしたb
結構話題になりましたね笑
半額が拍車をかけて、今回倍以上の受験者でした。問題が公式テキストから外れていたせいでだいぶ炎上していたように感じます。
何より過去問がないというのがどうにも受験者側に余計なストレスを与えていましたねー。
正直落ちていたらめちゃくちゃディスっていたと思いますorz いずれにしても改善点は多いと思いますが、、、
ご存じない方のために念の為どんな試験か説明しますと、Gはジェネラリストの頭文字で、ディープラーニングを事業に活かす人材を認定する試験です。
勉強した身からするとAIに関する「目次」を勉強させられたかんじです。
勉強する価値はあると思います。今後AIに関して造詣を深めていこうと考えている方であれば受ける価値はあるんじゃないでしょうかね。上述のように目次を一通り学ぶものなので、受験後何を学ぶべきか最適な方針を作れるようになると思います。それに試験でも無ければ自主的に学ぶことはないであろう内容もあるので、手始めには良いかと思います。
ただし12000円払う意味があるかと言われると、個々人によると思いますな。汗
参考までに一番役に立ったと感じた教材を一冊だけ紹介させてください。
この本アマゾンのレビューがあんまり良くなかったので買う予定なかったのですが、書店で見てみたらかなりよくまとまっていたので後半はこの本をよく使用していました。手法ごとの誤差関数が表になっていり、自分の中でごちゃついた知識を効率よく整理できます。
無論この一冊では太刀打ちできませんので気をつけてください。
この本は各章のはじめにフローチャート形式で内容がまとめられていて、僕はこの本に白本や模試で見た内容すべてメモして集約させていました。おかげで基本的な問題は、試験中もこれ一冊を参照して素早く解けました。わからない問題をググる時間もなんとか確保できました👍
またTwitterで「ヤリ過ぎ」と言われていた情報理論の分野も、実は本書にまとめられていたので問題なく解けました。自己情報量やエントロピー等親切に取り上げられています。
注意点としては、まとめ本なので最初にこの本開いても不親切な内容としか感じないと思います笑 自分で行間を埋められる程度に基礎知識がついた上で、それらを有機的に定着させるためのものと思ってください。
その他の教材については過去記事で取り上げていますのでぜひ参考までに。
以上です。感想やご意見、いつでもお待ちしています。
G検定の結果と諸々の話
わくばです!
長らく更新していませんでしたが皆さんいかがお過ごしでしょうか。
先々週G検定を受けました。合格通知がくるまで2週間もありましたんで、何するにしても身が入らないということで、医学だけに集中すると決めて2週間勉強に没頭しておりました笑
いくつになっても結果発表は緊張するものですね。もちろん無事G検定合格ということで、黒星スタートは避けられました(ヤレヤレ)
加えて、かねてよりお願いしていた本学分子薬理学研究室の研究の参加させてもらえる事になりました!9月からのスタートなので少し後ですが、お願いしてみるものですね、大学病院のメリットを初めて感じましたよ笑
とはいえこの研究室は基本的に薬理学の研究をするところですから、先生方はエンジニアのようにコーディングバリバリというわけではありません。Rは熟練のようですがPythonはぜんぜんのようです。
真空管がどうこう言っているご高齢な先生や、魚の生態ヲタク、タイの留学生などなかなか濃い味付けの研究室になっております。その中に機械学習がしたい学生が一人追加されるのですから更に濃いですね笑
研究内容はあまり口外できませんが、実験動物の行動を物体検出を用いて分析するそうです。実践の場を得ることができて本当に感謝ですね。
以上の話も踏まえて今後どうしていこうかなと考えたんですが
まずこのブログ自体は今後も継続していこうと思います。目的としては
・義務年限の関係でIT業界に就職することが実質不可能なので、ブログを自分がプログラミングと格闘した履歴としたい
・純粋に知見のアウトプットの場とする
・あわよくばエンジニアの方々フィードバックがほしい(笑)
・医学生に少しでもプログラミングに興味を持ってもらいたい
内容は以下のような形で投稿していくつもりです。
・研究でやった内容の実況
・研究のために行った勉強内容
・その他プログラミング系の内容や発信した方が有用と感じた内容
興味を持っていただけたらぜひフォローお願いしますb
その不安、フレーム外ですよ。〜人間存在とフレーム問題〜
わくばです!
最近、ブログ書いたりプログラミング勉強したりしてると、突如不安に襲われる事があるんですよね。
あー、おれこんな勉強速度で結果出せんのかな。やっぱ量より質かなー。
あー、進級試験落ちるんじゃねえかな。睡眠時間削ろうかな〜。
こんなことを思いながらG検定の勉強していたら、ある”問題”を思い出しました。
〜フレーム問題〜
ご存じない方もいると思うので軽く説明させてください。
これはAIが問題解決の際に生じる問題なんですが、AIには「今からしようとしていることに関係がある事柄だけを選びだすことが、実は非常に難しい」という問題です。
哲学者ダニエル=デネットの有名なたとえを引用します。
状況として、洞窟の中にロボットを動かすバッテリーがあり、その上に時限爆弾が仕掛けられている。このままでは爆弾が爆発してバッテリーが破壊され、ロボットはバッテリー交換ができなくなってしまうので、洞窟の中からバッテリーを取り出してこなくてはならない。ロボットは、「洞窟からバッテリーを取り出してくること」を指示された。
人工知能ロボット1号機R1は、うまくプログラムされていたため、洞窟に入って無事にバッテリーを取り出すことができた。しかし、R1はバッテリーの上に爆弾が載っていることには気づいていたが、バッテリーを運ぶと爆弾も一緒に運び出してしまうことに気づかなかったため、洞窟から出た後に爆弾が爆発してしまった。これはR1が、バッテリーを取り出すという目的については理解していたが、それによって副次的に発生する事項(バッテリーを取り出すと爆弾も同時に運んでしまうこと)について理解していなかったのが原因である。
そこで、目的を遂行するにあたって副次的に発生する事項も考慮する人工知能ロボット2号機R1-D1を開発した。しかしR1-D1は、洞窟に入ってバッテリーの前に来たところで動作しなくなり、そのまま時限爆弾が作動して吹っ飛んでしまった。R1-D1は、バッテリーの前で「このバッテリーを動かすと上にのった爆弾は爆発しないかどうか」「バッテリーを動かす前に爆弾を移動させないといけないか」「爆弾を動かそうとすると、天井が落ちてきたりしないか」「爆弾に近づくと壁の色が変わったりしないか」などなど、副次的に発生しうるあらゆる事項を考え始めてしまい、無限に思考し続けてしまったのである。これは、副次的に発生しうる事項というのが無限にあり、それら全てを考慮するには無限の計算時間を必要とするからである。ただ、副次的に発生する事項といっても、「壁の色が変わったりしないか」などというのは、通常、考慮する必要がない。
そこで、目的を遂行するにあたって無関係な事項は考慮しないように改良した人工知能ロボット3号機R2-D1を開発した。しかし今度は、R2-D1は洞窟に入る前に動作しなくなった。R2-D1は洞窟に入る前に、目的と無関係な事項を全て洗い出そうとして、無限に思考し続けてしまったのである。これは、目的と無関係な事項というのも無限にあるため、それら全てを考慮するには無限の計算時間を必要とするからである。事程左様に、人間のように判断することができるロボットR2-D2を作るのは難しい。
これは悪魔の証明と言われる「非存在の証明」に近いところがあるんですが、目的と無関係なことをいくら考慮したって証明のしようがないということです。「他に関係する事項は”存在しない”」ことを証明するには、n= ∞ の帰納法を扱わなければならないからですよね。ですから、行為目的というフレーム(額縁)に対して何がフレームの外で、何が内側にあるのか判断するのは非常に困難なことなんです。
AIの問題とかいいつつ人間にもあてはまることだと思いませんか。先程の僕のくだらない悩みだって全部無関係とは言い切れないけど、だからこそ無駄なんですよね。悩み一つ一つが、現行の目的と無関係とは言い切れないからこそ、それを考え始めると動けなくなる。だって「関係ないとは言い切れない心配」なんて無数にあるのですから。
不安をなくすのは無理なんです。いくら考えても消えない。
解決策は簡単で優先順位をつけること
そしてそれ以外のことは無関係と割り切って「フレームの外」へおいやってしまいましょう。考えない。考えそうになったときは昼寝をすればいいんです。
僕も不安に支配されないように、フレームを自ら絞って勉強に没頭したいと思います。
では。
【Kindle Unlimitedのすすめ】Linux初心者必見、おすすめ教材
わくばです!
現在僕は機械学習を基軸にプログラミングの勉強をすすめているわけですが、インフラや低レイヤーにも興味があって、直近はLinuxの勉強をしています。
僕はビンボー学生ですが、いろんな本をパラパラ読み漁りたいタイプの人間でして、Kindle unlimitedにはめちゃくちゃお世話になっています。医学の本はほぼ皆無なんですが、プログラミングなどの技術書は結構対象に入っていて、プログラミング学習に非常に役立っています。いずれKindle unlimitedでプログラミング系の本を集めて記事にしてみようかなとも思っています。
さて今回のおすすめはこちらの本です。
・ショートカット
内容
6日間で基本が習得できるようになっています。
他の本じゃありえないくらいコマンドの基礎から説明されていてCUIに慣れていない方にはうってつけです。
例えばこんなレベル
「 コマンド名と引数の間、及び各引数の間はスペースでないとだめで、普通プログラミングで使う「, 」は引数の一つとして認識されてしまいます。なので、「echo」コマンドで画面に「I have a pen」と表示したい時「echo I have a pen」とすると「I」「have」「a」「pen」4つの引数を渡したことになり、「echo I,have,a,pen」とすると「I,have,a,pen」という一つの引数を渡したことになる。 」
エンジニアの方からすると当たり前と感じるかもしれませんが、こういった当たり前でも言葉にしてもらえると学習もスムーズに進むものです。
実際どのへんまでの内容がカバーされているのか気になる方はKindleでサンプルがダウンロードできますのでそちらを参考にしてください。
値段
Kindle unlimitedなら当然無料ですが、Kindle版購入価格では990円、ペーパーバックだと何故か2970円です(高ッ!)。おそらくもとよりKindle用にしか出版してなくて、紙媒体なんか準備ねえよ、ということなのかもしれません。
分割版
本書籍は6日で習得するというコンセプトですが、1日分ずつ分割でも購入できます。
その場合Kindle版は一冊330円、ペーパーバックは1100円になります。普通に合本版を購入するほうがお得ですね。もちろんKindle Unlimitedなら全部無料です👍
注意
本書籍はあくまでLinux学習の導入としてのおすすめです。コマンドライン操作に重てんをおいた書籍ですので、SSHやコンテナなどもっと技術 に高レベルの内容は別の書籍を推奨いたします。
まとめ
僕は一通りこの本をやりましたが、跳躍が少ないし量も重くないので非常に読みやすかったです。Linuxはエンジニア業界で多く使用されているだけでなく、MacOSやDockerとのシナジーも非常に高いので、プログラムを学習される方にはマストラーンです。初心者の方はCUI自体に抵抗を感じるかもしれませんが、ぜひ参考にしてください。あとKindle unlimitedガチおすすめ。
では。