カテゴリー
未分類

進捗1/18

・修論の概要書と情報処理学会の概要書を作成しました。
引き続き修論に取り組みます。

・ハイブリッドモデルにおいて、CNNとMLPの結合後のレイヤーのみを学習させて評価を行いました。

maermseR
1.91±0.232.45±0.290.17±0.07

CNNとMLPも学習させた場合に比べて、評価結果に大きな違いはありませんでした。一方で、学習過程においてはlossとmaeの値が大きくなっており、学習があまり行われていないと考えられます。

・ドロップアウト係数の調整

ハイブリッドモデルにおいて、ドロップアウト係数を0.2から0.4に変更して比較評価しました。(過学習の対策)

maermseR
1.75±0.202.39±0.310.20±0.15

変更する前とした後で、評価にほとんど違いは無かったので、他の対策が必要になると考えています。

カテゴリー
未分類

進捗12/7

進捗一覧

・DCONの提出稿作成
・CNNとMLPを学習させずに実験(続き)
・桃の中心部を切り抜いたデータを追加(データ拡張)

DCONの提出稿作成

無事、DCONに投稿した論文の採録が決まりました。
提出稿を提出したので、返信内容に沿って修正を行っていきます。

CNNとMLPを学習させずに実験(続き)

前回の実験の続きで、CNNとMLPをフリーズさせて実験を行いました。結合後のレイヤー構成を変更して8種類の実験を行いました。

Concatenateレイヤーへの入力はCNN・MLPそれぞれ直列で(None, 16)と(None, 64)、並列で(None, 1, 16)と(None, 1, 64)です。

・評価結果

2層追加・入力(None, 16)・直列1.94982.51660.1149
2層追加・入力(None, 64)・直列1.88232.51460.1162
4層追加・入力(None, 16)・直列1.90012.51200.1181
4層追加・入力(None, 64)・直列2.00522.7688-0.0715
2層追加・入力(None, 16)・並列2.12732.6837-0.0063
2層追加・入力(None, 64)・並列2.13002.6811-0.0046
4層追加・入力(None, 16)・並列2.13162.6798-0.0037
4層追加・入力(None, 64)・並列2.12882.6822-0.0055

全体的に評価結果は変わりませんでした。

・学習過程(例:4層追加・入力(None,64))

直列

4層追加・入力(None, 64)・直列2.00522.7688-0.0715

並列

4層追加・入力(None, 64)・並列2.12882.6822-0.0055

結合後のレイヤーを4層分追加して学習過程グラフを比較した結果、並列に関して学習がうまく進んでいないことがわかりました。

桃の中心部を切り抜いたデータを追加(データ拡張)

拡張データに桃の中心部を切り抜いたデータを追加して学習を行いました。その他の条件やモデル構成は今までと同じです(2020-2023年度のデータ、モデル構成はオリジナルと同じ)。

・画像例

・評価結果

maermseR^2
1.84972.41530.1847

結果としては、今までとほとんど変わりませんでした。
今後は、拡張データに追加するだけではなく、中央部のみに着目したデータのみを元にしたデータセットを用いて実験を行います。

今後の課題

・ヒストグラムの比較(準備と実験)
・桃の中心部を切り抜いたデータ(noneを置き換える)
・レジュメの準備
・修論の章立て(一通り完成)

カテゴリー
未分類

進捗11/30

進捗一覧

・結合方法を変えて実験
・ドロップアウトの係数を0.4にして96エポック学習
・CNNとMLPを学習させずに実験

結合方法を変えて実験

Concatenateレイヤーに入力する際のCNNとMLPの出力を変えて実験を行いました。

条件一覧
・(None, 32)で直列に結合
・(None, 64)で直列に結合
・(None, 1, 32)で並列に結合
・(None, 24, 64)で並列に結合
・(None, 96, 16)で並列に結合

評価結果maermseR2
(None,32)直列1.98322.56920.0775
(None,64)直列2.03812.6855-0.0079
(None,1,32)並列1.98402.55510.0875
(None,24,64)並列1.96992.61970.0408
(None,96,16)並列2.14922.8204-0.1117
評価結果

全体的にあまり変化は見られませんでした。
学習過程においても、今までと同じ傾向でした。
(全体的にバリデーションの値が悪く、直列より並列の方が学習自体は収束する。)

ドロップアウトの係数を0.4にして96エポック学習

前回に引き続き、CNNのドロップアウト係数を上げて実験を行いました(過学習対策)。48エポック目のモデルに対して追加で学習を行いました。

・学習過程グラフ

※オプティマイザーのパラメータが初期化されたため、49エポック目でloss, maeが下がっている (学習には問題ない

評価結果maermseR2
96エポック1.68532.29940.2444
48エポック1.61132.32740.2259

評価結果にあまり違いは見られませんでした。

CNNとMLPを学習させずに実験

CNNとMLPをフリーズさせて実験を行いました。
(結合後のレイヤーのみ学習)
Concatenateレイヤーへの入力はCNN・MLPそれぞれ直列で(None, 16)、並列で(None, 1, 16)です。

評価結果maermseR2
学習なし:直列1.75602.38270.1887
学習なし:並列2.13992.6760-0.0009
学習あり:直列1.91012.50750.1213
学習あり:並列1.85592.43180.1735

・学習過程(直列)

・学習過程(並列)

テストデータによる評価については、CNNとMLPの学習をフリーズさせた場合に直列では評価が上がり、並列では下がりました。
学習過程に関して、maeとlossの値は悪化したことから、CNNとMLPを学習させた場合に比べて特徴を抽出できていないことが考えられます。今後は結合後のレイヤー数を増加させて実験を実験を行います。

今後の予定

・CNNとMLPをフリーズさせて実験(続き)
・データ拡張についての実験
・修論の章立てを考える

カテゴリー
未分類

進捗11/16

進捗一覧

・10分割交差検証
 結合方法の実験(Concatenateレイヤー(直列))
・ドロップアウト(ハイブリッドモデル内のEfficientNetの部分)
・中間発表会資料作成

10分割交差検証

10分割交差検証MAERMSER2
平均値
±標準偏差
1.8011
± 0.1747
2.4151 
±0.2112
0.1766
±0.1543
4分割交差検証MAERMSER2
平均値
±標準偏差
1.7854
± 0.1538
2.8009 
±0.7618
– 0.1450
±0.6824

・学習が安定しているため、10分割交差検証で実験を進める
・MAEはほとんど変わらないが、RMSEは約0.4の差があった

結合方法の実験(Concatenateレイヤー(直列))

CNNとMLPの結合方法についての実験の続きをおこなった。
今回はConcatenateレイヤーを用いて、CNNとMLPの出力層を直列に繋いだ。それぞれの出力層のshapeは以下の通り。

CNN・MLPの出力:(None, 16)

・学習過程グラフ

・評価結果

MergeレイヤーMAERMSER2
Concatenate
(垂直方向に結合)
1.85592.43180.1735
Concatenate
(
水平方向に結合)
1.91012.50750.1213
average1.86832.43500.1713
add1.86582.42200.1801

他の結合方法に比べてやや精度が落ちた。

ドロップアウト

ハイブリッドモデル内のCNNのドロップアウトの係数を0.2(デフォルト)から0.4に変更した。

・評価結果(dropout=0.2(デフォルト))

10分割交差検証MAERMSER2
平均値
±標準偏差
1.8011
± 0.1747
2.4151 
±0.2112
0.1766
±0.1543

・評価結果(dropout=0.4)

maermseR2
1.61132.32740.2259

テストデータによる評価では、係数を上げると精度がやや上がった。

学習データとバリデーションデータに関してはやや精度が下がった。

中間報告会資料作成

中間報告会に向けて資料を作りました。
明日が本番なのでがんばります。

今後の予定

・結合方法の実験を優先して進める
・並行してその他の実験を進める

カテゴリー
未分類

進捗11/8

進捗一覧

・ローカル環境の構築
・2020-2023年度のデータでの学習(4分割交差検証)
・モデルの結合方法の実験(途中)
・中間発表会プレゼン資料の準備

ローカル環境の構築

自宅のPCで実験をするための環境を整えました。
動作環境は以下です。今のところ問題なく動いています。
これから実験の数が増えてくるので、GoogleColabと並行して実験を行なっていきます。

OS:Win10
IDE:vscode
GPU:GTX1070Ti
CUDA:11.2
cuDNN:8.1
Python:3.10.11
TensorFlow:2.9.1
tensorflow_addons:2.9.1

2020-2023年度のデータでの学習

2020-2023年度のデータを用いて4分割交差検証を行いました。条件は以下の通りです。

モデル構成:ハイブリッドモデル
画像データ:2020〜2023年度の全データ(領域抽出済み)
糖度データ:各側面(平均値ではない)
エポック数:48
ランダムシード:0
評価方法:4分割クロスバリデーション
データ:学習・バリデーション・評価全てに拡張データを使用

黒色背景データ
(糖度各側面)
平均値分散標準偏差
MAE1.78540.02370.1538
RMSE2.80090.58040.7618
R-0.14500.46570.6824
評価結果

引き続き10分割交差検証で実験をしていきます。

モデルの結合方法の実験(途中)

ハイブリッドモデルの結合方法を変更して実験を行なっています。下の図が現在のモデル構成です。

他の結合方法を試すにあたって、CNNの一部に変更を加えました。(Reshape→畳み込み→プーリング層をはさんでMLPの出力層と形を揃えた)

試した結合方法は以下の2つです。
・Averageレイヤー
・Addレイヤー

maermseR
average1.86562.42200.1801
add1.86832.43500.1713

ConcatenateはCNNとMLPの出力層を変更して垂直と並行を入れ替えて結合しました。

maermseR
1.85592.43180.1735

テストデータで評価した結果は変わらなかったもの、学習過程では3つのうちでこの結合方法が最もlossとmaeが収束した(0.5以下程度)。
Concatenateに関して理解が曖昧なので、次回は仕様を確認して層を調整するなどして実験を行う。

中間発表会プレゼン資料の準備

11/12(火)のリハーサルと、11/17(金)の本番に向けてプレゼン資料を作成しています。

今後の予定

・プレゼン資料の準備
・実験の続き(10分割交差検証・結合方法を優先)

カテゴリー
未分類

進捗10/26

進捗一覧

・2020-2023年度のデータ準備完了
・バッチサイズを変更して実験(背景黒モデル)
・バッチサイズを変更して実験(CNN+HSVモデル)
・中間発表会プレゼン資料の修正案(途中)

2020-2023年度のデータ準備完了

2020〜2023年度の実験データを準備しました。
現在は4分割交差検証で学習を進めています。
いままでは24エポックで学習していましたが、データ数が増えたので48エポックで学習をおこなっていきます。

Google Colabの無料版だとメモリ不足で学習ができず、全ての実験を有料版で行うと追加料金がかなり発生するため、ローカルで学習する準備もしたいと思います。

バッチサイズを変更して実験(背景黒モデル)

評価結果の数値が以前よりも良くない原因を調べるために、一応バッチサイズを大きくして実験を行いました。バッチサイズが16の時点でほとんど収束していたので、結果としては大きくは変わりませんでした。

・16 -> 32
・モデル構成:ハイブリッドモデル
・実験データ:黒色背景・1024データ・糖度各側面・学習データのみ拡張・テストデータは元データの2割

MAERMSER
1.27581.54680.4378

バッチサイズを変更して実験(CNN+HSVモデル)

CNNモデル(EfficientNetB3)でHSVデータを追加した実験でも、バッチサイズを16から32と64に変更して学習を行いました。若干結果は良くなったものの、バッチサイズ16でも学習は収束していたため、誤差程度だと考えています。

MAERMSER
バッチサイズ:161.401.790.25
バッチサイズ:321.101.460.43
バッチサイズ:641.191.510.39

・中間発表会プレゼン資料の作成(途中)

プレゼン内容の案を作成したため、資料を作っていきます。
来週をめどに仮で一通り作成します。

今後の予定

・全データでの学習
・ローカル環境の準備
・プレゼン資料作成

カテゴリー
未分類

進捗10/19

進捗一覧

DCON再投稿
CNN+HSV:4分割クロスバリデーション(全拡張データ使用)
糖度データの分布確認
2020~2023年度の全データでの実験の準備(途中)

DCON再投稿

DCONの再投稿が完了しました。

CNN+HSV:4分割クロスバリデーション

今後に向けた調査として、黒色画像にHSVデータを追加してファインチューニングを行いました。
条件は以下の通りです。

CNN:EfficientNetB3
画像データ:黒色画像 + HSV画像
糖度データ:各側面(平均値ではない)
エポック数:24
ランダムシード:0
評価方法:4分割クロスバリデーション
データ:学習・バリデーション・評価全てに拡張データを使用

評価関数MAERMSER
平均値1.1196 ± 0.07821.4833 ±  0.04130.4028 ± 0.0946

↓学習過程グラフの例

糖度データの分布確認

最小値4.3 
最大値25.5 
平均値11.6 
中央値11.4 
最頻値10.4 

2020~2023年度の全データでの実験の準備
(途中)

終わり次第実験を開始します。

今後の課題

・全データでの実験開始
・修論のテーマ名を決定
・中間発表会の章構成

カテゴリー
未分類

進捗10/12

進捗一覧

・DCON論文の修正(途中)
・CNN+HSVデータの実験(途中)

DCON論文の修正(途中)

DCONに再投稿する論文の修正を行っています。
15日が締め切りなので、それまでに修正して投稿します。

CNN+HSVデータの実験(途中)

今後に向けた調査として、黒色画像にHSVデータを追加してファインチューニングを行っています。
条件は以下の通りです。

CNN:EfficientNetB3
画像データ:黒色画像 + HSV画像
糖度データ:各側面(平均値ではない)
エポック数:24
ランダムシード:0
評価方法:4分割クロスバリデーション

今後の課題

・2020年度〜2023年度のデータを追加してファインチューニング
・CNN+HSVデータの実験
・DCON論文の修正

カテゴリー
未分類

進捗9/28

やったこと

・桃のデータ採取(テスト用)
・tensorflow・Pythonのバージョン比較
・DCONの資料作成

桃のデータ採取

テスト用の桃データ採取を行いました。
条件は以下の通りです。

個数:20個
側面:6方向
背景:机の上・掌・屋外
照明条件:照明なし(屋内・屋外)
データの総数:240 = 20(個数)✖️1(背景)✖️6(側面)
✖️1(照明)✖️2(フルーツキャップの有無)


↓画像例

室内:白色背景
屋外:木目
室内:手の上


tensorflow・Pythonのバージョン比較

以下の目的でtensorflowとPythonのバージョンを比較検討しました。

・一部バージョンでエラーが出るため、正しく動作するバージョンを確認
・モデルの学習の際、一部プログラムで実験当初と異なる値が出る問題の原因を探るため

各バージョンの結果
・Python:3.10.12(Google Colaboratoryの仕様のため固定)
・TensorFlow2.1.2:エラー
・TensorFlow2.9、2.8:収束しない(動作OK)
・TensorFlow2.6:エラー(2.8~対応)

TensorFlowはバージョン2.9を使用する。
異なる実験結果が出る原因についてはバージョン間での違いは見られず、現状で思い当たる点がないため、実験としてはひとまず次の段階に進む。

DCONの資料作成

DCONの査読結果が届きました。
条件付採録ということなので、再投稿に向けて作業を行なっています。
来週の水曜(10/4)までに第1稿を作成します。

今後の課題

・DCON再投稿の論文・回答資料作成
・データ量を増やして学習(2020年〜2023年)

カテゴリー
未分類

進捗8/3

やったこと

・桃のデータ確認
・ホールドアウト用の桃のデータについて検討
・DCON対応のための実験

桃のデータ確認

採取したデータ91個分について確認しました。
一部データが欠けていた3個を除く88個分を使用することにしました。

ホールドアウト用の桃のデータについて検討

91個分の桃とは別に、さまざまな環境下で評価を行うためのデータ採取を行います。条件は以下の通りです。
個数:桃20個
背景:机の上・掌・屋外
側面:6方向
照明条件:照明なし
フルーツキャップ:あり・なし
データの総数:240 = 20(個数)*1(背景)*6(側面)*1(照明)*2(フルーツキャップ)

DCON対応のための実験

シード値を変えて実験を行なっています。
黒色背景データ10240とハイブリッドモデルです。
評価結果はmaeが1〜1.5程度で以前と異なる値が出たので、
条件を変えて実験を続けつつ、tenforflowのバージョンなどについても確認をしていきます。

今後の予定

・桃のデータ採取
・DCON対応のための実験の続き