顯示具有 學習-AI 標籤的文章。 顯示所有文章
顯示具有 學習-AI 標籤的文章。 顯示所有文章

2021年10月4日 星期一

[學習]110-1課表

目前修習3堂課程:

  1. 深度學習於電腦視覺 (周二下午)
  2. 智慧醫療程式設計 (周四早上)
  3. 機器學習 (周五早上)

第1~2週上課心得

  1. 深度學習於電腦視覺:
    • 第一堂課要求要做作業,雖然有提供上學期上課的影片,但是內容是目前我沒有繼續深入研究的,所以可能需要更多時間把這塊空缺補起來。
    • 比較令人欣慰的是幸好教的數學在碩士班已經先學過了,所以以現在的狀況比較容易吸收。
  2. 智慧醫療程式設計:
    • 本來就是已經學過的東西,所以其實只是系統性的複習。
    • 讓我可以學習的地方是老師的練習題給的很活用,也很任務導向。我認為這塊可以去改善之前我的教學,並補上一些更任務導向的練習題。
  3. 機器學習:
    • 難度我認為與「深度學習於電腦視覺」不相上下,所以我預測這學期可能要花很多時間在這兩堂課程上,有點擔心...





2021年10月2日 星期六

[機器學習]AI-DVT資料後續處理

AI-DVT分析

目前的情況

關於AI-DVT,目前的情況如下。
檢查資料的過程中,我認為應該可以使用眼睛的部分跟嘴巴的部分當作判斷依據
但是我剛剛有發現一些錯誤,詳細如下:

  1. 眼睛的部分因為個案一開始的時候可能不熟悉,所以有些個案會先看鍵盤再作答,而這樣的動作可能會影響判斷
  2. 嘴巴的部分,是我在評估時,有些個案會邊做邊講話,而依據我的理解,這個動作應屬於分心的動作,且Openpose可判斷出來
    但是我覺得這樣的數據仍然太少,依照目前的拍攝方法,Openpose好像沒有辦法抓到受測者的肢體動作。

與GHL學長討論的結果,目前我預計先只抓取眼睛(36~47、68、69)跟嘴巴(48~66)的數據當作分析資料,其他資料不納入分析。
詳細標記點如下圖所示。




目前遇到之困難

  1. Colab一天大概只能分析完一位個案(目前約分析完8位個案)
    • 與GHL學長討論的結果,我們認為可以先將目前個案的影片以Python的套件裁剪成固定秒數的小影片,從中選取欲分析的影片,然後使用Openpose進行分析。這樣可有效減少欲分析的影片量。
    • 另一個解法是購買colab pro(每個月約台幣300元),可使分析任務更順利。
  2. AI-DVT的分析方法
    • 應使用之前所學,尚未進行練習的LSTM模型,以解決以影片當作輸入層的問題。
    • 之前中風AI使用的方法是畫面當作輸入層,這可能導致模型訓練結果雖然有良好的模型分數,但是類化程度很差。

2021年9月28日 星期二

[機器學習]使用Colab的心得(更新Colab可使用時間)

最近嘗試使用Colab來分析AI-DVT的資料,結果發現Google是有限制GPU的分析用量的。之前還在查詢是否有其他解法,但今天有幸聽到「深度學習於電腦視覺」的課程內容提到分析的軟硬體的比較,如果要增加用量只能付費,但是價格不便宜。

20211004更新:Google colab每使用12hr會reset一次,連續使用約一周會被暫停使用GPU 24hr

以現在的分析量來說,一個Gsuite帳號一天大概可以分析一位個案的資料,所以如果需要分析完目前的91為個案的話,如果要縮短分析的時間,可能要使用不同的帳號來分析。
幸好分析的部分可以分開寫code,所以操作上並不會太困難。

關於AI-DVT,目前正在檢查資料的過程中,我認為應該可以使用眼睛的部分跟嘴巴的部分當作判斷依據。
但是我剛剛有發現一些錯誤,詳細如下:

  1. 眼睛的部分因為個案一開始的時候可能不熟悉,所以有些個案會先看鍵盤再作答,而這樣的動作可能會影響判斷

  2. 嘴巴的部分,是我在評估時,有些個案會邊做邊講話,而依據我的理解,這個動作應屬於分心的動作,且Openpose可判斷出來

但是我覺得這樣的數據仍然太少,依照目前的拍攝方法,Openpose好像沒有辦法抓到受測者的肢體動作。

目前我預計只抓取眼睛跟嘴巴的數據當作分析資料,其他資料不納入分析

這部分還要跟學長們討論看看,目前就依照現在已經標記的個案跑初步結果,並嘗試跑模型,看看預測結果如何。

2021年6月1日 星期二

[討論紀錄]中風AI分析之初步任務內容

本次中風AI分析討論議題:

  1. 先切成小片段還是先分割成兩個影片?
    • 先以一段影片測試兩種方法的差異,若無差異,則可先切成小片段後再分割畫面
  2. excel的動作大概要分成多細(目前我的想法是每個單一步驟都要分解出來),分類的話,要用每題分類,還是向度分類?
    • 目前以每個單一步驟皆分解成小的影片片段
    • 設計Excel表之格式,確保該格式可適用於之後之資料分析
      • 每個動作皆需要紀錄分跟秒,分別列於不同之欄位。若該時間點沒有分的欄位,也必須記錄0,不可空白。
      • 各動作名稱命名原則為:
        • 動作開始:皆為準備動作。命名方式為「向度名稱+題號 Start 分/秒」
        • 動作結束:各單一指令動作之結束,每個動作皆可能包含1個以上之單一動作,因此命名最後方加上編號,以區別該動作包含多少單一指令動作,最後之單一指令動作為「回到準備動作」。編號將於新的動作開始時重新編號。命名方式為「向度名稱+題號 End 編號 _ 分/秒」。
      • 目前預計包含之項目有:「個案編號」、「UE1_start」「UE1_end」「UE2_start」「UE2_end_01」「UE2_end_02」「UE2_end_03」...,以此類推
      • 製作動作命名之coding book,以利傳承及分析。此步驟亦須寫明各編號為哪一個動作結束。
      • 標註期間可能會發現個案有左右進行相反之問題,應以註解的方式標註個案進行之順序有誤

        關於這個例外,我認為可能要再將前面再增加可辨識個案先進行哪個動作之欄位,以利於自動化時進行辨識

      • 「示範」、「健側練習」、「患側練習」、「患側正式測驗1」、「患側正式測驗2」分別列於不同之工作表。
      • 若標註期間發現有動作遺漏,則應紀錄 "-9999" ,以區隔遺漏資料與數值 "0" 之差異。
  3. 是否要放在不同資料夾,還是都放在同一個資料夾?(我目前會的方法不確定是否可以讀到該資料夾中所有的檔案(包含子資料夾的檔案))
    • 不同的個案放在不同的資料夾
    • 每個個案皆包含2個攝影機之資料夾,分別存放不同攝影機所拍攝之影片
    • 攝影機之後不再細分各向度或動作之資料夾,以利資料讀取及存檔(先試做,確認可行性,如果不行再細分向度及動作之資料夾)
    • 確保於分割影片時,每個檔案之命名方式是否有利於進行自動化。命名方式為:個案編號向度+題號單一步驟編號
  4. 確認如果有excel之標註後時間之後,用於程式切影片之可行性(可先用一小段影片進行測試及撰寫初步之code)
  5. 使用windows powershell是否可以讓python自動餵入影片並分析?
    • 可實現該作法
    • 原理:用Python開啟powershell,然後再讓powershell讀取我們寫好的檔案

2021年5月24日 星期一

[紀錄]Openpose筆記

  1. 擷取5位個案之Openpose之標註點:
    • 確認資料時發現Openpose在多個人的畫面中,並非依據由左到右之順序匯出個案資料,因此變成需要以人工提取該個案於兩個畫面之位置後提取個案之相關資訊
    • 目前彙整出來之收案資料中,每一位個案之照片都有其他人入鏡之狀況;且因為每個畫面出現施測者與受測者之規則不同,難以使用Python語法完成自動化。目前我先將所有Openpose資料匯出之後,以每個人頭部(第一標註點)的X座標做為判斷依據,提取2個可能是個案的座標,並且於過程中想到自動化的方法。
    • 之後資料處理自動化時,可將所有人頭部(第一標註點)的X座標進行排序後篩選出受測者。但是畫面是否有其他人入鏡,且如何請電腦判斷出入鏡者則需要再思考怎麼實現
      • (我目前想到的方法是計算每個入鏡者之無法判斷的點,若過多則代表該人物為入鏡者,藉此篩選出入鏡者)
    • Openpose使用之繪圖座標系中,Y軸的正向向下,X軸正向向右。因此在進行第一次核對時,除了核對各入鏡者之X座標外,也核對各入鏡者之Y座標,以確保數值正確 
  2. 從75個標註點中提取X及Y座標,並依據UE的6個動作計算Y座標之變化量
    • 這部分可進行簡單之自動化,因此速度較快
    • 因為22張圖片我在進行處理時皆有標註該張圖片進行何種動作,因此也可進行簡單的計算以實現自動化

※ Openpose繪圖座標系之資料確認有與學長討論,並且參考其他人之經驗分享


2021年5月22日 星期六

[紀錄]Openpose問題釐清

與GHL討論之紀錄

  1. 標記過慢與顯示卡、Openpose版本不同之相關性?
    • 理論上應該無關,但與片源之畫面及影片長度有關。本次標記過慢是因為畫面太大,使Openpose需要先將畫面進行處理後才能進行標記,進而影響處理速度。
  2. 標記之精準度如何提升?
    • 因為Openpose之標記為運算後之結果,因此標記過程中勢必有誤差,但是只要兩個攝影機鏡頭其中有一個鏡頭有標註到個案正確的動作,誤差應該都在可接受之範圍。
    • 同第一題,若先將影像切成一半,則有可能將標註之精準度提升
  3. Openpose標註後之數值如何處理&應用
    • 標註之資料以字典分別記錄畫面中不同人之關節點的標記,每個人都會記錄75個數值(25個標註點,每個點皆紀錄於麵畫面中之X座標, Y座標,精準度),目前我只需要使用X座標及Y座標

2019年8月26日 星期一

[學習]2019.08.27欲討論之內容


本周任務
一、   VISTA資料庫
(1)   建立training機器學習Logistic regressionLr)及deep neural networkDNN)。
(2)   將資料分成train set/validation set/test set三組,分別訓練及驗證3種模型[Random ForestRF)、LrDNN]來預測90天後之MRS之分數。
(3)   使用train set訓練3種模型、validation set驗證3種模型,最後用test set繪製ROC curve。結果顯示DNN的表現最好(0.77),Lr的表現次之(0.76),RF的表現最差(0.73)。結果與Heo之研究 (Heo et al., 2019) 相同。繪製之ROC curve如下:


二、   製作9/6衛福部研討會之PPTCOWMEM)及海報(iSAT
(1)   COWMEMPPT完成大綱(有與學長討論)及部分初稿
(2)   iSAT之海報完成大綱
三、   選課:初選未選上統計,因此多選了生物統計學二

遇到之困難
一、   VISTA資料庫
(1)   建立training機器學習model時,不清楚各個modelpython code參數應該設定多少。
解決方法:先使用sklearn預設之數值,但run code時出現錯誤或結果無法完全複製Heo之研究(Heo et al., 2019)。確認該研究中是否有寫相關參數、確認code錯誤之原因並作調整。
(2)   machine learning的觀念釐清
解決方法(觀念釐清):
a.    over fitting(過度契合)是指匯入的training data過度契合訓練出來的model,主詞及受詞為modeltraining data,而非testing data。所以才會造成testing data匯入model時,產生的model表現差。
b.   資料分成train set/validation set/test set三組時,應使用train set訓練及調整模型、validation set驗證及選擇模型,最後使用test set確認模型之表現。理論上驗證模型與確認模型之模型表現結果不會差太多。切勿使用testing data調整模型。
二、   製作COWMEM研討會之PPT
(1)   PPT中關於工作記憶之定義、整體呈現之rationale及資料呈現之取捨有問題時皆找恭宏學長釐清。

後續預計進行之任務
(1)   建立ASTRAL model並比較與RFLrDNN之表現
(2)   8/28送印iSAT計畫之海報
(3)   8/30前找恭宏學長試報COWMEM計畫之PPT

參考資料
1.     Heo, J., Yoon, J. G., Park, H., Kim, Y. D., Nam, H. S., & Heo, J. H. (2019). Machine Learning-Based Model for Prediction of Outcomes in Acute Stroke. Stroke, 50(5), 1263-1265. doi:10.1161/strokeaha.118.024293


2019年8月19日 星期一

[學習]2019.08.20欲討論之內容


本周任務為
(1)  VISTA資料庫中選出ASTRAL使用到的之變項(共10個),轉換單位不統一之變項後處理缺失值。
(2)  建立training機器學習model 1(random forest)及繪製ROC curve。結果顯示model 1的表現為0.99,繪製之ROC curve如下:

(3)  將資料分成train set/validation set/test set三組,並呈現描述性統計、各預測變項與結果變項之相關性。

2019年8月14日 星期三

[學習]2019.08.13討論整理及口語表達問題檢討


口語表達問題檢討

1.     表達原則:重點越早呈現、越清楚越好
2.     結構化格式:任務內容→任務目的→過程→結果→解決方法(包含前因後果)
3.     討論前一天前將本周要討論之議題依照上述之結構PO部落格

2019年7月23日 星期二

[AI]20190723彙整


Artificial Intelligence, machine learning, neural network, deep learning概念釐清:

Artificial Intelligence, machine learning, neural network, deep learning之間的關係




machine learning
機器學習(machine learning)是指設計及分析讓電腦可自動學習之演算法。其原理為模仿人類學習的方式,透過使用資料或輸入以往的經驗,取出特徵或經過計算處理後得到有意義的技巧,以最佳化電腦程式的運算效能,並提升其表現。
(此寫法我覺得仍太過籠統,可能要再說明的更具體)


But what is a Neural Network? | Deep learning
Summary:
This video talks about neural network, including what the structure consists of and how the neural network works. It used visualized images to make the neural network easy to understand, just like a human’s brain. The process of recognizing things is built on a neural network. For example, if we want to recognize a digit, we should break one picture into many parts. Each part will be seen as a neuron, and all the neurons will make up the first layer. The hidden layers involve complicated processes and in the end the layers will output the correct digit in the end.

Neural network breaks the complicated process into many layers to recognize part of the digit (or function), then combines all the part into a digit (or outcome) to give us a final answer. The methodology uses a regression model: each neuron has a weight and bias to control the outcome within a range. Then if we input an image (or data), the network will recognize and give us an answer.