めるぱんブログ

とある医大生の勉強の記録です

G検定合格しました!

先日受験したG検定の結果が返ってきて、無事合格することができました!

今回のコロナの自粛期間で色々勉強したことの腕試しとして受けたのですが、なんとか合格することができ、形に残るものができたので非常に嬉しいです。

 

試験の内容としては法律関係が非常に多く、また公式テキストに載っていないような内容が大量に出ていたのでかなり苦戦しました。

 

実際にした勉強や参考にしたサイトなどを後日またあげようと思っています。

 

今回の合格をゴールとせずに勉強を続けていきたいです!!

オンライン臨床実習

今週の金曜までの2週間、民谷先生主催のオンライン臨床実習に参加していたのでその内容とそこで勉強したことの覚書をしておきます。

 

1日目

プレテストとオリエンテーション

テストの内容は主に肺炎について

今後の実習も肺炎についてメインにやる予定

 

2日目

 

カルテを書く際は根拠を重視

呼吸数、SpO2、FiO2が肺炎では重要な指標 

 

課題

アンピシリン-スルバクタムとは

アンピシリンはペニシリン系の抗菌薬であり、スルバクタムはβラクタマーゼ阻害薬である

腎臓で代謝され、時間依存性の薬剤である。一方で同じような薬剤特性をもつセフトリアキソンは肝臓で代謝される。

 

アンピシリンスルバクタムの抗菌スペクトラムは一般的なグラム陽性球菌とグラム陰性桿菌をカバーしており、また、黄色ブドウ球菌はペニシリナーゼという酵素を産生するため、アンピシリン単剤では無効だが、スルバクタムの合剤にすることでMSSAに対しても有効になる。また嫌気性菌も抑えられるようになっているため誤嚥性肺炎に対しても有効である。

一方院内感染で多いSPACE(セラチア、緑膿菌アシネトバクター、シトロバクター、エンテロバクター)はカバーしておらず、またMRSAに対しても無効である。

今回はインフルエンザ感染症後の肺炎ということで、起炎菌としては一般の市中肺炎で上位となる肺炎球菌とインフルエンザ桿菌以外に黄色ブドウ球菌も考えられるのでこの処方になったと考えられる。

 

 

酢酸リンゲルとは

生理食塩水に電解質と酢酸を加えたものが酢酸リンゲルである。

その特性は生理食塩水と同じで細胞外液補充液であるため、血管内にとどまる力が強いので血圧を保ちたいときに使用する。

生理食塩水と比較し、Clの濃度が抑えてあるため高Cl血症になりにくく、維持液と比較しても低Na血症や自由水補充が少ないため血管内脱水において有効である。

 

3日目

盗汗は肺炎球菌性肺炎に特徴的な症状

 COPDではSpO2 97%を超えないようにサチュレーションは88

呼吸数は30秒計測して2倍

肺炎は肺実質の急性の感染性の炎症

医療介護関連肺炎NHCAP

1.長期療養型病床群もしくは介護施設に入所している
2.90 日以内に病院を退院した
3.介護を必要とする高齢者,身障者
4.通院にて継続的に血管内治療(透析,抗菌薬,化学療法,免疫抑制薬等による治療)を受けている

院内肺炎HACP

入院48時間以上経過した患者に新たに出現した肺炎

市中肺炎CAP

病院外で日常生活をしている人に発症する肺炎(NHCAP,HACPを除く)

グラム染色が最も早く反応し菌が減少

 

課題

治療の効果判定指標

肺炎に限らずすべての疾患はパラメータを設定し経過をフォローすることが重要

その際一つのパラメータのみで判断しない

臓器特異的パラメータを特に重要視

呼吸苦、咳嗽の頻度、痰の量性状

呼吸数、SpO2、酸素需要量(FiO2)、呼吸音、努力性呼吸数の有無

胸部X線、喀痰グラム染色

 

抗菌薬投与中止のタイミング

経過良好であれば抗菌薬は5から7日間で終了できる

3から7日間の投与期間と10日間の投与期間を比較したメタアナリシスでは治療失敗・死亡リスク有意差なし

非重症例は5日間、重症例は7日間を目安としてよい

 

下記の4項目のうち3項目以上満たした4日後

1.解熱(37.0度以下)
2.白血球増加の改善(正常化)
3.CRPの改善(最高値の30%以下への低下)
4.胸部X線陰影の明らかな改善

 

4日目

情報→解釈→介入 のサイクルを意識して診察

問診でも治療のパラメータを意識して聞く(咳痰睡眠食欲など)

採血結果などは前回の結果と比較して書く

SOAPを意識的に区別して書く

レントゲンは遅れて出てくるので改善の指標としては微妙 

新聞本を読めるというのは元気になってきているという証拠

アセスメントは患者情報と知識知見の二本の柱に支えられている

 

課題

翌日の輸液オーダー(種類・量)

減らす

抗菌薬は7日間

バイスを減らせないか

モニターはオフ

酸素はスケールそのまま

血糖測定は終了

 

5日目

咳や喀痰の量はS情報

Aでは最初に診断名を書いておく

患者の周りにあるものは話題に挙げることで生活状況がわかる

退院後のことを考えると生活背景は非常に重要

抗生剤はオーラルスイッチも考えておく

ディエスカレーションは短い期間(1週間程度)であればそこまで気にしなくてもよいかも

ペニシリンGはカリウムが付加される、作るのがめんどくさいというデメリットもある

 

課題

安静度の支持変更(シャワー浴)

酸素を外して呼吸苦がなければルートキープしたままラインをロックするのでシャワーはオーケー

 

帰宅後の生活を想像する

入院初期は病気をメインに、後期は生活のことをメインに考える

生活についてはしっかりとコメディカルと連携していく

 

土日への引継ぎをSBAR形式で

自分以外の人に申し送りするときに使える書式

 

Situation 状況

発熱呼吸苦で3月1日受診

治療が奏功し症状安定

 

Background 背景

インフルエンザ感染後

既往歴なし ADL自立・自宅暮らし

 

Assesment 評価

#1 インフルエンザ感染症後の細菌性肺炎

(入院時喀痰培養で肺炎球菌検出)

 

Recommendation 推奨 

アンピシリンスルバクタムを投与中

土日はイベント対応でお願いします。

 

6日目

課題

肺炎球菌ワクチン

肺炎球菌は莢膜の種類から90種類以上に分類

成人に使用できるのは23価(カバー広いがB細胞依存、公費負担)と13価(カバー狭いがB細胞とT細胞どちらも活性化)

 

 

喀痰培養結果

抗菌薬がeffectiveなのに喀痰培養する意味はなし

MRSAは定着(たまたまいただけ)

1臓器1起炎菌

不要な検査は追加しない

複数のパラメータで評価

 

7日目

課題

病状説明/ICでの留意点

ゴールは相手の納得ということを明確にしておく

伝えたでは不十分で伝わったことが大切

説明内容だけでなく相手の理解度を確認

 説明後に自分以外の誰か(看護師など)に確認してもらう

 顔を見て話す=見ないと相手の表情がみられない、信頼してもらえない 

必要十分の内容分量で話すダラダラしない

 

記録を残す

 説明内容や質問について

 

まず相手の知っている情報(入院までの経過)から話すことでワンクッション挟む

 

抽象と具体のバランスを重要性

具体的すぎると専門性が非常に高くなるので患者にわかるようにかみ砕いて伝える。医療者に対してはしっかり具体的に話す。

言葉の定義を共有する=miscommunicationを予防

 

医学知識は常に更新して情報の取捨選択を行う

ノンテクニカルスキルも重要

 

8日目

課題

退院時サマリの留意点

ちゃんと書けば診療報酬に加算が入る

患者の入院情報を共有できる=患者の診療ケアを連携・継続できる

  

退院時サマリの型

主訴

現病歴 既往歴 内服歴

社会生活歴

身体所見

検査所見

診断 プロブレムリスト

アセスメント プラン

入院後経過

考察

 

主張→根拠→結論の3ステップ

最初に結論を言っておくとよい

 

次に診療する医師に引き継げるような内容を網羅しているか

入院時の情報、入院後経過が簡潔にまとめられているか

病因機能的に必須事項、期限を守っているか

自己研鑽として考察が充実しているか

 

退院時サマリはすぐ書く

診察能力は考察に反映される

資産として累積される

 

9日目、10日目

今までの実習の振り返りがメイン

実習前のプレテストと同じようなテスト

 

まとめ

感想としてはオンラインの実習であるため、実際の患者もおらず、身体診察も取れないのですが、今までのポリクリより勉強になった実習でした。

毎朝患者情報をみてそれに対するカルテを書くのですが、その際に必ずクリニカルクエスチョンを一つ出すということが義務付けられており、その内容について全国の学生たちとディスカッションをします。まずこれだけでも非常に得難い経験ですが、このクリニカルクエスチョンに対して調べたり話し合ったりしているうちに、自分も医療に参加しているような気持ちになれました。

自分は非常に言葉にするのが下手なのですが、とにかくこのオンライン臨床実習は非常に勉強になりました。

コロナウイルスで忙しい中準備をしてくださった民谷先生とチューターの先生方、誠にありがとうございました。

G検定を受験しようと思います

みなさんG検定をご存知でしょうか?

G検定とは日本ディープラーニング協会が主催する、ディープラーニングに対する基本的な知識を問う試験です。

https://www.jdla.org/certificate/general/

 

ツイッターなどで調べて見ると実務では役に立たないとかその時間統計の勉強をしろとか散々なことが書かれていて正直受けようかどうか迷っていたのですが、なんと今回コロナ騒動を機に半額で実施するというみたいです!

学生なら2500円で受けられるということなのでそれなら受けてみようかなという運びです笑

今までPythonとKerasによるディープラーニングを読みながらちまちまと勉強を進めてきて、一応6章まで読了してきたわけですが、ここで一度基礎に帰って見るという意味も込めて悪くないのではないかなと思っています。

 

一通り勉強が終わったら今度はいよいよKaggleデビューをしたいと思っているのでささっと勉強したいと思います!

 

あと先週から2週間かけて行なっていたオンライン臨床実習についての記事もあとであげますのでお願いします!

PythonとKerasによるディープラーニング 第5章④


第5章の最後はデータの可視化についてです。

 

前回犬と猫の画像を分類するのに学習させたモデルの中間層を可視化していきます。

まずテスト画像を前処理し、表示してみます。

f:id:melpan:20200425113301p:plain

テスト画像

続いてモデルの入力に対して各層の活性化をひとつづつ返していくモデルを作ります。個々の部分は正直よくわからなかったのですが、Modelというクラスを使用すると複数の出力を得られるみたいです。

このモデルを使ってチャネルの活性化を見てみるとこんな風になります。

f:id:melpan:20200425114208p:plain

最初の層の30番目のチャネル

入力された画像がこんな風に処理されているんですねー!

すべての層の各活性化を見ていくとこんな風になります。

f:id:melpan:20200425114551p:plain

1層目

f:id:melpan:20200425114644p:plain

2層目

f:id:melpan:20200425114617p:plain

3層目

f:id:melpan:20200425114726p:plain

4層目

これを見ると最初の層と最後の層では全然違うように見えますね。これはどうやら最初の層は様々なエッジを検出するようになっているのに対して層が深くなるほど抽象的な解釈をするようになるみたいです。またからの部分が出ているのは今回入力された画像がその部分に該当する部分が検出されなかったという意味らしいです。

 

続いて行ったのがVGG16を用いたフィルタの可視化なんですが、これが全くうまくいかなかったのでまた後日勉強しなおしてみます。というのも出力されてくる画像が真っ白になって何も出てこないんですよね…

 

というわけで最後にヒートマップを使って可視化するという方法をやってみます。今回はVGG16の全結合分類器も含めすべてそのまま使っていきます。

f:id:melpan:20200425120855j:plain

アフリカゾウのテスト画像

この画像を前処理し、一度VGG16を通してみると

Predicted [('n02504458', 'African_elephant', 0.90942144), ('n01871265', 'tusker', 0.08618243), ('n02504013', 'Indian_elephant', 0.0043545677)]

と帰ってきます。

これはアフリカゾウの画像である確率が90.9%だということを表しています。

また、

np.argmax(preds[0])

で386と返ってくるのはインデックス386がアフリカゾウに対応しているためです。

この入力に対して最後の畳み込み層を可視化し、ヒートマップを作成すると以下のようになります。

f:id:melpan:20200425121428p:plain

アフリカゾウクラスの活性化ヒートマップ

これをもとの画像に重ねると

f:id:melpan:20200425121548j:plain

元の画像にスーパーインポーズ

こんな感じになります。

このヒートマップを作れるのはすごく便利だなーと感じました。

もう誰かがとっくにやっているかもしれませんが、これを患者に対して適用したら診察の時にどの部分に気を付けるべきかとかもわかってきてりするんではないでしょうか。

夢が広がりますね!!

PythonとKerasによるディープラーニング 第5章③

前回は一からモデルを学習させることで画像の判別を行いましたが、今回は学習済みの畳み込みニューラルネットワークを使用してみます。

今回用いるのはVGG16です。これはImageNetという140万個のラベル付き画像と1000種類のクラスのデータセットを学習させたCNNです。

前の記事で記述しましたが、これをGPUを使用したところメモリ不足になってしまいその対処法を調べていてかなり時間がかかってしまいました。

 

学習済みCNNを使用する方法は2つあり、それぞれ特徴抽出とファインチューニングと呼ばれるやり方です。

 

特徴抽出

特徴抽出の方法は2つあります。

まず一つ目は新しいデータセット(今回はDogs vs. Cats)を畳み込みベース(Conv2DとMaxPooling2Dの部分)で実行し、新しい独立した全結合分類器(Dense層)の入力する方法です。

この方法はめちゃくちゃ楽で速いです。画像とラベルをNumPy配列にし、畳み込みベースを通します。そしてそのデータを新たに定義した全結合分類器に入れるだけです。問題点はデータの拡張ができないのでドロップアウトを入れても過学習が起きやすいという点です。

 

二つ目の方法は畳み込みベースの最後に全結合分類器を追加し、最初から最後まで一つのモデルで行い、入力から出力までを一連の動作としてする方法です。この際畳み込みベースは凍結し、重みが更新されないようにすることが重要です。この方法ではデータの拡張ができますが、計算負荷が高いためGPUが使用できないと厳しいです。

 

ファインチューニング

これは特徴抽出の二つ目の方法を行った後に畳み込み層の一部を解凍しもう一度訓練するという方法です。これによりさらに今行っている問題に対して適合したモデルができます。

しかし、注意点として解凍する層は2,3層にとどめ、またRMSpropの学習率を低く設定する必要があります。

 

 

ここまでの勉強で大まかな画像認識の流れをつかむことができたと思います。最後にこの章ではデータの可視化について勉強しますがこれで第5章は終了となります。

最初は右も左もわからない状況でしたが、だいたいふぉの方向を向けばいいのかくらいはわかるようになってきた気がします。

この本を読み終えたらしっかり実践できるようになれそうでとても勉強になります。

GPUでKerasを使おうとするとエラーが出る

今回はタイトル通りの記事です。

学習済み畳み込みニューラルネットワークを使用して画像判別を行おうとし、VGG16をインポートしました。そして、インスタンス化するところまでは問題なかったのですが、VGG16を用いて特徴量の抽出を行おうとしたところcuDNNの初期化に失敗したというエラーが出てしまいました。

 

前回設定し、MNISTやほかの画像を用いて学習を行ったときには問題がなかったのですがなぜ今回出てしまったのか…

 

まずエラーメッセージで検索してみたところ、TensorFlow, Python, cuDnn, CUDAのバージョンが一致していないのではというのが一番最初に出てきました。

しかし確認してみると特に問題なし。考えてみれば前回までは普通に学習できていたので当たり前です。

 

ということでコードを実行しながらタスクマネージャーでGPUの使用率を確認してみると、VGG16をインスタンス化したとたんに一気にGPUの使用率がマックスになっていることが判明。

どうやらGPU版TensorFlowはデフォルトで使用するとGPUの全メモリを確保してしまうようです(allow_growth)。そのため新たに学習する分のメモリがなくなってしまっていたようです。

とはいえこれでは困るので解決方法を調べているといい感じのブログを発見しました。

https://qiita.com/studio_haneya/items/4dfaf2fb2ac44818e7e0

 

最初にここに書いてあるコードを入力することで無事学習可能な状況になりました!

 

TensorFlowはめちゃくちゃ便利なんですけどところどころよくわからないエラーを吐くので困りますね…

しかしそのエラーを解決するたびに理解が深まっているように感じるのでまあ許すとしましょう。

近況報告

KerasでGPUを使えるようにする

今まで故障していたパソコンが復活しました。

前回はCPUでぶん回したのが原因だと思われるため、今回はしっかりGPUを購入しセットアップしました。

まだ駆け出し初心者なのでそこまで高級なのもいかがなものかと思い、NVIDIA GeForce GTX 1660 SUPER にしてみました。

とりあえずGPUを使用できる環境を作ります。

 

下記のブログを参考にしました。

https://keita-blog.com/data_science/keras-tensorflow-gpu

 

環境を構築するときには、Anaconda NavigatorのEnvironment画面で新たに

tensorflow-gpu

keras

matplotlib

pillow

をapplyしました。コマンドプロンプトを使うより断然こっちのほうが簡単だと思うのですがなぜか多くのブログではあまり書かれていない謎。

 

諸々準備が完了したところで、いざ前回1時間ほどかかったモデルをもう一度学習しなおしてみるとなんと、2000秒ほどで学習完了してしまいました!

恐るべきGPU力…

これでさらに今まで以上にはかどること間違いなしです!

明日からさらに進めていきたいところです。

 

オンライン臨床実習

先日ツイッターで見かけたオンライン臨床実習に申し込んでみたところ、明日から3期生として2週間勉強できることになりました!

どのようなことを勉強したのかもこれから書いていきたいと思っています。