画像圧縮:ニューラルネットワークによる機械学習チュートリアル - パート1
目次:
- 概要 📝
- 画像圧縮の問題 📷
- JPEGとは? 🌈
- エンコーダ・デコーダのアプローチ 📸
- オーバーフィッティングとは? 🎯
- Google Collabの利点 💻
- データの準備 👩💻
- ニューラルネットワークの構築 🧠
- 学習と結果の可視化 📊
- ネットワークの制約と改善策 💡
#概要 📝
このビデオシリーズでは、現代のディープラーニングの新しいアイデアについての概要を説明します。ビューアの皆様により多くの機械学習エンジニアになっていただくことを目指しています。Pythonとディープラーニングの基礎についての経験があることを前提に、技術的な情報やアイデアを使用してコードの実装を訓練します。
#画像圧縮の問題 📷
画像圧縮は、Googleなどの企業が数百万人のAndroidユーザーからの写真を保存するため、またはNetflixが携帯回線を介してウルトラHDコンテンツを提供するために、現代のソフトウェアにおいて幅広いアプリケーションがあります。一般的に、画像をできるだけ小さくする必要があります。JPEGは、個々のピクセルデータをPNGファイルのように保存する代わりに、画像を周波数空間に変換し、大きな成分のみを保持することで機能します。これにより、画像のサイズが大幅に削減されますが、画像の微妙な詳細が失われます。
#JPEGとは? 🌈
JPEGは、広く使用されている画像圧縮の方法です。JPEGは、画像を周波数空間に変換することによってデータを圧縮します。しかし、JPEGは情報の一部を失うロッシーデータ圧縮のため、「劣化性」とも呼ばれることがあります。劣化の度合いは、圧縮レベルの選択によって調整することができますが、画像品質とファイルサイズのトレードオフの関係にあります。
#エンコーダ・デコーダのアプローチ 📸
画像圧縮のための一つのアプローチは、エンコーダ・デコーダのようなアーキテクチャを使用することです。エンコーダは、画像をピクセル空間からラテント空間に変換し、画像を圧縮します。デコーダは、ラテント表現をピクセル空間に変換し、画像を再現します。しかし、これはオートエンコーダとは異なる単純なアプローチです。
#オーバーフィッティングとは? 🎯
オーバーフィッティングは、機械学習で一般的な問題です。オーバーフィッティングが生じると、モデルはトレーニングデータに対しては非常に正確に予測できますが、未知のデータセットに対しては予測精度が低下します。ただし、今回のアプローチでは、トレーニングデータが個々の画像であるため、外部のデータセットが存在しないため、オーバーフィットが利点となります。
#Google Collabの利点 💻
このビデオシリーズでは、Google Collabを開発環境として使用します。Google Collabは無料で使用でき、GPUアクセラレータを提供しています。GPUにアクセスできない場合でも、自身の開発環境を使用できますが、Collabを推奨します。
#データの準備 👩💻
データの準備では、画像を取得し、グレースケールに変換します。また、画像の横幅と高さを取得します。このサンプルの画像は約40万のピクセルを持っています。次に、ニューラルネットワークへのトレーニングデータとして、ピクセルの位置(xとy座標)を使用します。
#ニューラルネットワークの構築 🧠
ニューラルネットワークの構築は、エンコーダ・デコーダとスキップ接続を組み合わせたアーキテクチャです。2つの隠れ層と96の隠れユニットを持つ比較的小さなニューラルネットワークを構築します。入力はピクセルの位置(2次元)、出力はグレースケールの値(1次元)です。学習パラメータを確認し、ネットワークが正しく構築されたことを確認します。
#学習と結果の可視化 📊
学習と結果の可視化では、グローバル勾配降下法を使用してニューラルネットワークを学習させます。損失関数としてSmooth L1を使用し、最適化手法としてAdamを選択します。90秒程度で学習が完了し、アニメーションや細かい詳細の欠落が見受けられます。
#ネットワークの制約と改善策 💡
このアプローチでは、高周波信号の詳細を捉えることができません。ネットワークのサイズや学習時間を増やしても、この問題は改善されません。高周波関数を低次元領域で学習させるために、位置エンベディングのアイデアを使用することで、この問題を解決することができます。
これらのトピックについて詳しく説明します。次のビデオでお待ちください。
(この記事は、機械翻訳ツールを使用して作成されました。ご了承ください。)