【論文読み】Point Transformer

一言でいうと

Vision Transoformerを使って点群データを処理する方法を考案

論文リンク

https://arxiv.org/abs/2012.09164

著者所属機関

Hengshuang Zhao1 Li Jiang2 Jiaya Jia2 Philip Torr1 Vladlen Koltun3
1 University of Oxford
2 The Chinese University of Hong Kong
3 Intel Labs

投稿日付(yyyyMMdd)

2020/12/16

掲載誌・学会等

https://arxiv.org/abs/2012.09164

先行研究と比べてどこがすごい?

VisionTransformerを点群データ処理のタスクに適用した。分類・パーツ分類・セマンティックセグメンテーションのタスクなどで今までのモデルよりも高性能でSoTAを達成。

技術や手法のキモはどこ?

VisionTransformerを点群データ処理に適用した点。点群データは位置情報の集合なのでVisionTransformerに自然にフィットする。

どうやって有効だと検証した?

セマンティックセグメンテーション・形状推定・オブジェクト分類などのタスクで既存のモデルと比較してSoTAを達成。またAblation StudyにてAttentionの取り方でScalar attentionとVector attentionを比較して、Vector Attentionのほうが大きく性能向上することを確かめている。

議論や検証がまだ必要なところはある?

速度性能は他の3D CNNと比べて現実的に適用可能なのか?

次に読むべき論文は?

既存モデルとして挙げられている3D CNNの論文は興味があれば読む。

コメント

VisionTransformerが3次元データに対しても有効なのが証明されている。点群データに対しての処理なので速度性能がどの程度出ているかが気になる。

【論文読み】Pre-Trained Image Processing Transformer

一言でいうと

Vision Transoformerを使って複数タスクに対応できる画像処理用のネットワークを考案。複数タスクでSoTAを達成。未知のタスクに対してもfine tuningすることで高精度で処理が可能。

論文リンク

https://arxiv.org/abs/2012.00364

著者所属機関

Hanting Chen1,2, Yunhe Wang2*, Tianyu Guo1,2, Chang Xu3, Yiping Deng4,
Zhenhua Liu2,5,6, Siwei Ma5,6, Chunjing Xu2, Chao Xu1, Wen Gao5,6
1 Key Lab of Machine Perception (MOE), Dept. of Machine Intelligence, Peking University. 2 Noah’s Ark Lab, Huawei Technologies.
3 School of Computer Science, Faculty of Engineering, The University of Sydney. 4 Central Software Institution, Huawei Technologies.
5 Institute of Digital Media, School of Electronic Engineering and Computer Science, Peking University. 6 Peng Cheng Laboratory.

投稿日付(yyyyMMdd)

2020/12/03

掲載誌・学会等

https://arxiv.org/abs/2012.00364

先行研究と比べてどこがすごい?

VisionTransformerを複数タスクに適用可能にしたところ。複数タスクでも高精度の画像処理が可能なことを示しており、画像処理においてもTransformerがBERTのように汎用的なモデルとして活用できる可能性を示している。

技術や手法のキモはどこ?

複数タスクを受け入れられるようにHEADとTAILのネットワークを工夫している。未知のタスクに対しても精度を上げるためにContrasiveLossを活用して工夫している。

どうやって有効だと検証した?

超解像やノイズ除去・雨除去などのタスクでSoTAを達成。未知のタスクに対してもファインチューニングが有効なことを示している。

議論や検証がまだ必要なところはある?

ここに挙げられている画像処理のほかにもキチンと活用できるか。そもそもGTが用意しにくいような画像処理の場合にどうすべきか。

次に読むべき論文は?

Ting Chen, Simon Kornblith, Mohammad Norouzi, and Geoffrey Hinton. A simple framework for contrastive learning of visual representations. arXiv preprint arXiv:2002.05709, 2020.

コメント

画像処理にもTransformerの活用可能性が模索されているのが面白い。複数タスクに対応しつつもSoTAを達成しているのが凄い。これからこの手法を応用した他のタスクへの活用事例が出てくるだろう。

『5G 大容量・低遅延・他接続のしくみ』を読んだ

最近話題の5Gの概要をつかむためにブルーバックスの『5G 大容量・低遅延・他接続のしくみ』を読んだ。

通信の領域は基本的なことしかわかっていなかったので、携帯電話の黎明期から今日の5Gに至るまでの歴史的な技術の変遷が書かれている本書は為になった。例えば、電波に音声を乗せて送るって具体的にどうやっているの?といった疑問や、高周波・低周波どちらがどういう目的に使えるの?などの基本的なことから、LTE、4Gとかって結局何だったのなど幅広く理解できた。

また、5Gの特性として低遅延・他接続が切り開くのは大量のIoTデバイスがある未来だと著者は述べており、巷で話されている将来像を非常に分かりやすく思い描くことができた。特に直進性の問題から、5G基地局の設置場所として街路樹や信号機などが議論されていたという内容は、近い将来を思い描くうえで重要な観点になりそうである。

全体を通して非常に分かりやすく書かれているので、今話題の5Gを概要レベルで理解するためには非常に良い一冊だった。

Pinterestにおける機械学習システムの性能改善論文:『Shop The Look: Building a Large Scale Visual Shopping System at Pinterest』

概要

KDD 2020 Applied Data Science Track Paper の以下の論文を読んだ。

Shop The Look: Building a Large Scale Visual Shopping System at Pinterest

Applied Data Science Trackは実際に使われている機械学習システムの話が多く、読んでいてためになる。
PinteresにおけるShop The Lookというシステムの性能を改善していった記録。機械学習システムを実運用する際の、泥臭い多方面からの改善が書かれていて面白かった。

このシステムは、写真を入力として、その写真に写っている家具や洋服などを選択すると、そのオブジェクトをキーとして画像検索して類似商品を検索購入できる。

機械学習システムのパイプラインは以下の通り、オブジェクト認識・バウンディングボックス抽出・画像をベクトル化して類似商品の検索という流れになっている。

性能を向上するために

基本的に精度を上げるために行ったことは、データを増やす、高性能なモデルを使う、システム的な方面から改善する、といった観点が書かれており、それぞれ改善によりどれほど精度が増していったかが書かれており、地道な努力の積み重ねが重要だとわかる。

データを増やすという点では、既存の画像(ラベリングの品質は低いかもしれない)をトレーニングデータとして活用するようにして、特定ジャンルの精度を高めている。

システム的な改善では、選択されたオブジェクトに対して全データから類似商品を検索すると関係ない画像まで取ってきてしまうことが多かったため、まず選択されたオブジェクトのカテゴリを予測してから、そのカテゴリから類似画像を検索するようにしている。 単純でリーズナブルな考え方であるが、確かに性能向上に寄与している。

Lessons Learned

最後にLessons Learnedという賞が用意されており、そこではLabel subjectivity is challengingとImpact comes from diverse areasの2点が強調されている。

ラベリングについては、データのラベリングを改善したことも非常に大きな影響を与えていることが書かれており、共通の認識を持ったin-house labeling teamが居ることが重要だと述べている(Amazonのメカニカルタークでやってみたところ一貫性が取れなかったらしい)。この辺りの重要性は結構認識されてきていると思う。特にエッジケースをチーム内で共有しないとラベルに一貫性がなくなりやすいので、エッジケースはlabelerのトレーニングガイドに盛り込まれるようになっているらしい。

“Impact comes from diverse areas”とはつまり、何か単一のことをやれば十分な性能が出るということはなく、このシステムではデータセットの改善、モデルの改善、システムインフラ面の改善など様々な改善ポイントがあるということで、確かに機械学習システムの実運用を行っているとモデル改善以外にも山ほどやるべきことがあるのがわかる。

所感

やるべきことをキチンとやって精度を地道に上げていっており、非常にためになった。特にラベリングの重要性に言及されているところは、実際にシステムを運用してみて、自分たちでラベル付けも行ってみているからこそ大変さがわかっているのだと感じた。ほかにも類似の論文を読んでみようと思う。


機械学習パイプラインのデバッガについての論文:Debugging Machine Learning Pipelines

タイトルの通り、機械学習パイプラインのデバッグを行うツールを開発した論文「Debugging Machine Learning Pipelines」を読んだ。
International Workshop on Data Management for End-to-End Machine Learning というワークショップで発表されている。

概要

機械学習システムの失敗原因はコードのバグや入力データ、パラメータ設定など様々な原因が考えられる。特にパイプラインが複数になったりすると原因箇所の特定が非常に難しい。

そこで、ML Systemにおけるfailureの原因を推測して簡潔な説明を提供する仕組みを開発。

機械学習パイプラインの例

具体的には、前回までの実行時の情報と結果や、まだテストされていないパラメータ値を提案することで原因を突き止めやすくする。このツールによって、データ、データ型、ライブラリバージョン、パラメータ値などの側面でパイプラインをチェックできる。

実際のアルゴリズムとしては、いくつかのパイプライン実行からエラーっぽい実行結果を抽出して、未テストのパラメータ群をある時間制約の中で実行して原因を突き止める。最終的に、複数の原因が見つかったら、最小限の原因をブール式の形で提示する。

処理の説明

色々と定義が書かれているが、簡潔に言うと、以下の通り。

  • MLパイプラインのプロパティを設定してCVの値が一定以上なら成功とする。
  • 成功した時のパラメータ、失敗した時のパラメータからどのパラメータのときに失敗するのかの候補を最小限のブール式で提示する。

具体的には決定木のように条件文を構築して、上手くいった場合のプロパティと失敗した場合のプロパティから最小の原因となるブール式を求めている。
作成された決定木は重複部分が多く出てきて可読性が悪いため、Quine-McCluskeyのアルゴリズムというものを使って、まとめられる部分をまとめてブール式にする。

決定木形式での原因特定

既存の研究との違いは、このML Debuggerは上手くいかないケースを探すことにある。既存研究は上手くいくプロパティの設定を探すが、著者らは最小の原因を探すためには上手くいくケースはあまり役に立たないためであると論じている。

実験結果

FineOneという原因の少なくとも一つを当てるタスクではF値1.0と他のフレームワークよりも良い結果が出ている。試行回数を制限するケースではF値は1.0よりも下がるが、依然として他のフレームワークよりも良い結果が出ている。全ての原因を見つけるFindAllというタスクでも同様の傾向が出ている。

実験結果の一つ。他のフレームワークよりも良い結果が出ている

他のフレームワークとの比較を考察すると、最小の原因群を出すのが苦手だったり、否定や不等式が扱えないなどの欠点があることが分かった。

所感

他のフレームワークはベイズ最適化のような手法を使ってパラメータを探索するものもあるというが、本手法は特にベイズ最適化などを用いることなく、失敗したところの近傍を調査するという手法で良い結果が出ているのは面白い。

データサイズが大規模になると、このようにイテレーションを回して原因を追及するということが、本質的に難しくなりそうなのでそのような場合を想定した研究を探してみたい。

著者らは今後の方向性として、何らかの実行環境に組み込んでユーザに使ってもらうことを考えているというので、近い将来このようなフレームワークを使って機械学習パイプラインをデバッグする時が来るのだろうか。

Embeddingの違いによる後段タスクへの影響推定:Understanding the Downstream Instability of Word Embeddings

MLSys 2020の論文より。Embeddingが異なった場合、後段のNLPタスクに対してどれだけの影響があるかを、後段モデルの訓練を行わないで推定しようという論文の「Understanding the Downstream Instability of Word Embeddings」を読んだ。

概要

トレーニングデータが少し変わっただけでモデルの性能が不安定になったりする現象がある。この論文では、自然言語処理モデルにおいてEmbedding層のサイズとトレーニングデータの変更による性能低下に関係性があることを調査した。
そのような関係性を、理論的に説明するために、eigenspace instability measureという指標を導入して後段の予測がどの程度変わるかを予測することができることを示した。

この手法は、 knowledge graph や contextual word embeddingのような他のembedding手法にも、この指標は拡張できることを示している。

そもそも、word embeddingが近傍何単語でトレーニングするかといったパラメータによって大きくパフォーマンスが変わってくることが分かっている。しかしその影響が、後段のNLPタスクにどの程度の影響が出るかが検討されていなかった。

例えば、embeddingのトレーニングに1%のデータを追加しただけで、感情分析タスクで15%の違いが出るようになった。この論文では、メモリ使用量とのトレードオフも調査されており、2倍のメモリを使うようにしたところ5~37%程の性能低下を抑えることができるようになった。

この論文で提唱されている、eigenspace instability measureは二つのword embeddingの固有空間がどれだけ重なるかを表した指標である。これを用いると、どの程度embeddingが変化したかが分かり、さらに下流のモデルを再学習することなくdimension-precisionパラメータを選択できるようになる。

この指標は他の指標で選んだパラメータに比べて、後段のタスクの性能低下が少なく済んでおり、なおかつ理論的にこの指標とモデルの性能に関係性があることを示している。

前提

WordEmbeddingのアルゴリズムの解説や、 圧縮技術としてuniform quantizationを利用などが解説されている。

また、WordEmbedding同士の距離の測り方として、以下の4種類を活用して比較実験している。

  • k-Nearest Neighbors(k-NN) Measure
    ランダムにサンプルされた単語に対してk個の近い単語を2つのEmbeddingから出して、どれだけ重なりがあるかを測る指標
  • Semantic Displacement
    Orthogonal Procrustes Problemを解いて、二つのEmbeddingが近くなる変換行列を求めて、それをかけたときのコサイン距離の平均を取る指標
  • Pairwise Inner Product Loss
    二つのEmbeddingのグラム行列同士の差分をノルムを取った値
  • Eigenspace Overlap Score
    特異値分解して得られた行列U同士を掛け合わしてノルムを取った値

実験

Semantic AnalysisとNamed Entity Recognition のタスクを後段として実験している。 Embeddingの次元数を25, 50, 100, 200, 400, 800と変化させて実験。Precisionも1bit~32bitまで変化させて性能がどう変わるかを確認している。

コーパスにはWikipediaの17年と18年のデータセットを用いて、コーパスが変わったとみなしてどれだけ相違があったかを示したのが、論文中Figure1。

次元数とPrecisionが上がるにつれて、相違が減る傾向が見て取れる。Precisionが4bitを超えたあたりから影響は小さくなってきている。若干の違いではあるが、2倍精度を上げた方が、2倍の次元数にするよりも性能低下が抑えられている。同じメモリ消費量であっても、トレードオフ関係で相違が3%位出ることもある。

Analyzing Embedding Instability

Eigenspace Instability Measureという指標を定義している。これは、各Embeddingを特異値分解して左特異ベクトルの張る空間がどれだけ重なっているかを示す指標となる。

このように定義するとそれぞれのEmbeddingを利用して訓練した線形モデルの誤差の差分がEigenspace Instability Measureに比例することが証明できるという。

実験してみるとk-NN指標と同等程度の結果となっている。k-NN指標は理論的な裏付けがないため、本提案の方が優れていると主張している。
そのほかにもknowledge graph や contextual word embedding(BERT)のような他のembedding手法にも、この指標は拡張できることを示している。

所感

2つのEmbedding間の後段タスクに与える影響を、後段のモデルをトレーニングすることなしに予測できるのは、どのEmbeddingを使えばよいかの選択に有用だと感じた。理論的なバックグラウンドがあるのが本手法の優れたところと著者らは主張しているが、k-NN Measureも直観的には2つのEmbeddingがどれだけ近しいかを表していると理解できるように思え、なおかつk-NNの方が全体的に精度が良いタスクがあるため、常にこの論文で提案されているEigenspace Instability Measureを使えば良いというわけでもなさそうである。

ニューラルネットワークのPruningをメタアナリシスした論文:What is the State of Neural Network Pruning?

MLSys 2020という学会で発表された面白そうな論文を読んだ。タイトルは「What is the State of Neural Network Pruning?」で、Neural Network Pruningについてメタアナリシスを行った論文。

概要

pruningに関するメタアナリシス論文。標準化されたベンチマークやmetricsが無いことが分かった。そこでShrinkBench(https://github.com/jjgo/shrinkbench)というオープンソースのpruning評価用のフレームワークを作成した。

著者らは81本のpruning論文を調査したところ、データセットやネットワークの比較の無いものや、他のpruning技術との比較が無いものなどが多く、適切にどの手法が良いのかを比較することが難しかった。

Pruningについて

pruning手法は大体pruneとfine-tuneを繰り返す手法が多い。 pruneの仕方にはsparsity structure, scoring, scheduling, fine-tuningの4つの観点で選択ポイントがある。

structure

ランダムにパラメータを削減する手法だと、現代のH/Wでは速度向上につながらない可能性がある。そこで、何らかの構造的なグルーピングからパラメータを削減する手法がある。

Scoring

重みの係数やgradientsなどから不要なパラメータを抽出するのが一般的。局所的にスコアを比較する手法や、大局的にスコアの低いパラメータを探し出すなどの手法がある。

Scheduling

何ステップごとに枝刈りを行うかも一つのポイント。複雑な関数によってSchedulingを決定する手法も出てきている。

Fine-tuning

枝刈り前の状態からファインチューニングするのが一般的だが、もっと前の段階や初期状態からファインチューニングする手法も提案されている。

評価指標

ストレージサイズを重視するのか、推論速度を重視するのかなど、様々な指標が存在しうる。そこには効率と質のトレードオフが存在する。FLOPsや画像分類のTop-1~5の性能で測られることが多い。

Lessons from the Literature

Pruningの効果

論文を調査していくと、pruningは効果があるということが分かった。小規模なpruningによって性能が向上した例もあったという。
ファインチューニングする手法の方がランダムに初期化して再学習するよりも効果的な例の方が多い。
パラメータ数を固定して比較した場合、スパースなモデルが密なモデルよりも性能がいいことがある。
しかし、モデルアーキテクチャを改善した場合(ResNet vs VGGのようなケース)の方がpruningよりも効果的な傾向にあった。

Missing Controlled Comparisons

しっかりとした比較が行われることが少ない。これは標準化された結果報告基準がないためだろうと述べている。

2010年以前の論文と比較されづらいのに加えて、近年の手法であっても比較されていない論文は多い。データセットもImageNetやMNISTで比較されることが多いが、MNISTはグレイスケールだし単純なモデルでも99%の精度が出たりするので、実験対象として適切ではない。データセットと評価指標が論文によってバラバラなので適切に比較することが困難である。また、モデルやデータセットが同じであっても、augmentationやハイパーパラメータ、使用するライブラリによって差が出るので直接比較が難しい。さらに、微妙な違いであっても、改善率1%以下を報告している論文が多いので、もともとのモデルの性能で大きく結果が左右されることになる。

そのほかにも、ResNetやVGGと述べられても、複数のバリエーションが存在するので一意に特定することができない。また酷いものだと存在しないようなアーキテクチャを既存のモデルとして述べているようなものもあったという。

それに加えて、 モデルの圧縮率や速度向上も論文によって微妙に定義が異なっていることもあり、比較の妨げとなる。

ではどうするか?

著者らは以下のような指針を定めて、手法を比較することを提案している。

  • アーキテクチャ・デーセット・メトリクスを正確に決める。
  • 少なくとも3つのペアの大規模データセット・最近のモデルで比較する
    圧縮率と速度向上の計算式を定義する
  • ImageNetではTop-1とTop-5を報告する
  • メトリクスを報告する際は、prune前のモデルの同じメトリクスを報告する
  • 比較対象とする手法と一緒にトレードオフのカーブを図示する
  • トレードオフカーブは5段階の圧縮率でプロットする
  • 報告する数値は平均と標準偏差も出す
  • 同じライブラリ、データ読み込みなどできるだけコードを比較対象とそろえる。

これらの比較が出来る環境としてShrinkBenchというフレームワークを作成している。

ShrinkBenchを使って実験したところ、以下のような発見があったという

  • 圧縮率と速度向上のトレードオフは完全に相関するものではない。なのでどちらか一方だけではなく、両方を報告する必要がある。
  • データとモデルの組み合わせによって、有効なpruning手法が変わる場合がある
  • 初期モデルの重みによって手法の優劣が変わる場合がある。
手法比較の一例
圧縮率と速度向上は必ずしも完全な相関関係にあるわけではないことを表している。

所感

pruningは近年非常に重要な研究分野で論文も多く出ているが、このようにメタアナリシスを行うとどの手法が良いと一概にいうことは難しいかもしれないと感じた。

ただ新しい手法を考案しても計算量の問題もあって多くの既存研究と比較するのはコストが大きいため、この論文で提案されているようなShrinkBenchのようなフレームワークを研究者が活用して、統一的なスコア報告がなされるようになると研究がもっと進みやすいかと思われる。

対話生成におけるマルチカリキュラム学習の活用論文:Learning from Easy to Complex Adaptive Multi-curricula Learning for Neural Dialogue Generation

AAAI 2020の論文「Learning from Easy to Complex: Adaptive Multi-curricula Learning for Neural Dialogue Generation」より。

概要

カリキュラム学習を用いた対話生成の手法に関する論文。一般的なカリキュラム学習では一つの指標に応じてComplexityを決定して、易しい順に学習を進めていくが、対話生成においては単一の指標で複雑さを測れるものではない。

そこで、複数の複雑度指標を定義して、対話の複雑度を測定できるようにした。作成された複数(この論文では5つ)の複雑度指標を用いて multi-curricula学習によって、学習状況に応じて異なったcurriculaを自動的に選択することで学習を進めていく。

背景

例えば、既存のデータセットである、OpenSubtitlesには学習が難しい受け答えデータが含まれている。そのようなデータに対していきなりモデルが学習を行うことは難しい。

そこで、人間の子供のように簡単なデータから難しいデータへと学習していく方針を考える。これはいわゆるカリキュラム学習と呼ばれる分野であるが、対話システムのデータの場合、他のタスクと違って、単一の複雑度というものを決めづらい。そこでこの論文では5つの側面から複雑度を設定して、5つのcurriculaを作成している。

5つの指標

Specificity

対話システムは得てして、一般的な回答を返しがちである。できるだけ特定の会話内容に対しての返答を行ってほしいのでSpecificityという指標を考える。Normalized IDFを回答の中の単語に対して計算して平均を取る。それをSpecificityとして考える。

Repetitiveness

同じ単語ばかり使って回答を生成するよりも、いろいろな単語を使って回答を生成している方が文章の複雑度は高いと考えられる。そこで、過去に使った単語をどれだけ繰り返しているかというのをRepetitivenessという複雑度指標として考えることができる。

Query-relatedness

質問に対して関係する回答をしているかどうかというのは複雑度指標として使える。具体的な計算方法としては、質問と応答の文章の類似度を埋め込み表現のコサイン類似度を取ることで計算する。

Continuity

Query-relatednessと近い概念だが、応答に対する次の文章がどれくらい類似しているかを計算することで、会話が一貫してつながっているかを考えることができる。これも同じようにコサイン類似度を取ることで複雑度指標と考えることができる。

Model Confidence

モデルの出力の確信度も、回答についての難易度を示すものになると考えられるので、複雑度の指標として用いることができる。

これら5つの属性は相関を計算すると、ほとんど相関が無いことが分かるのでこれらの指標の取り方は良さそうだと考えられる。

5つの属性を活用するために、Adaptive Multi-curricula Learningを提唱。各カリキュラムからのデータ取得はバリデーションデータに対するモデルのパフォーマンスに応じて決定される。 決定方法は強化学習の考え方を使って決める。

実験

実験は3タスクについて、各5モデルを実行しているが、ほぼ全てのケースでこのカリキュラム学習方式を導入した方が性能向上している。人間による主観評価でも、4割以上は良いと評価され、4割程度は優劣つかなかったので、全体としては今回の手法が主観的にも良い結果を出しているといえる。

Ablation Studyとして、5つの属性のうち1つだけ使ってみた場合もそれぞれ検討されているが、全体的に5つすべての指標を使ってカリキュラム学習した方が性能が良い。そのほかにも強化学習ベースの代わりにランダムポリシーを使った場合と、難しいものから先に学習する場合が実験されているが、どちらも今回の提案手法には及ばない。

所感

カリキュラム学習の考え方は人間の学習に関する方法からアイデアを受けているが、確かに一つの指標からデータの難易度は決められないと思うので、今回の複数指標を用いたカリキュラム学習で性能向上するのは直感にあっている。

今回の複雑度指標は、データセットから計算できるものであるため、人手による難易度付けが不要なため、その他のタスクについても活用できる部分があるのではないかと感じた。

Introduction to Applied Linear Algebra 第7章

第6章はこちら。第7章はMatrix Examples、行列を使った事例の紹介。

行列による演算で拡縮や回転反転などができる。また直線への射影もできる。軸の変換も同様。

各行に1の要素が一つだけある行列をかけ合わせることで、ベクトルに対して要素を選択するような演算を行うことができる。これを応用すると画像のクロップも行える。同様にpermutationを行列の掛け算で行うこともできる。

Incidence matrixという表現を使うと、有向グラフやネットワークを表せる。これを応用してグラフ上の流量を計算するような例が書かれている。

最後に1次元畳み込みと2次元畳み込みの事例が書かれていて、グラフや画像を平滑化するために用いられている例が図とともに述べられている。

Introduction to Applied Linear Algebra 第6章

第5章はこちら。第6章は行列について。

まずは行列の定義とか用語の説明などから入って、例として票形式のデータを行列で表すのが挙げられている。他にもdirected graphを行列で表す隣接行列の考え方なども述べられている。

次にゼロ行列と単位行列の解説がある。この辺りは基礎なので問題なく読み進められる。

最後に行列の転置・足し算・掛け算が説明されている。各章でおなじみではあるが、各演算の計算量も解説されている。