(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-05
(45)【発行日】2024-01-16
(54)【発明の名称】伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバ及びその方法
(51)【国際特許分類】
G06V 10/82 20220101AFI20240109BHJP
G06N 3/08 20230101ALI20240109BHJP
G06T 7/00 20170101ALI20240109BHJP
【FI】
G06V10/82
G06N3/08
G06T7/00 350C
(21)【出願番号】P 2022180833
(22)【出願日】2022-11-11
【審査請求日】2022-11-11
(31)【優先権主張番号】10-2021-0161089
(32)【優先日】2021-11-22
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】522442010
【氏名又は名称】コリア プラットフォーム サービステクノロジー株式会社
(74)【代理人】
【識別番号】100083138
【氏名又は名称】相田 伸二
(74)【代理人】
【識別番号】100189625
【氏名又は名称】鄭 元基
(74)【代理人】
【識別番号】100196139
【氏名又は名称】相田 京子
(74)【代理人】
【識別番号】100199004
【氏名又は名称】服部 洋
(72)【発明者】
【氏名】イ チョンヒョク
【審査官】伊知地 和之
(56)【参考文献】
【文献】韓国公開特許第2019-0102971(KR,A)
【文献】中国特許出願公開第111476138(CN,A)
【文献】中国特許出願公開第103605970(CN,A)
【文献】中国特許出願公開第109002841(CN,A)
【文献】特開2019-175015(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 - 30/398
G06N 3/00 - 3/12
G06N 7/08 - 99/00
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
CSDB(日本国特許庁)
(57)【特許請求の範囲】
【請求項1】
ユーザから複数の訓練用伝統家屋図面を訓練用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する構造名称検出機能の訓練クエリーを入力される入出力部と、
前記訓練クエリーを分析して、前記訓練クエリーの機能を果たすための複数の細部機能として抽出するクエリー分析部と、
データベースとして、複数の学習モデルテーブル及びデータセットテーブルを備える保存部と、
前記データベースと連動し、前記学習モデルテーブル及び前記データセットテーブルを用いて、前記複数の細部機能のディープラーニング訓練を行うフレームワーク部と、を含み、
前記クエリー分析部は、前記訓練クエリーを前記複数の細部機能として上位から下位順に順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出し、
前記複数の学習モデルテーブルのうち、前記複数の細部機能に適した未学習の図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルを選択する学習モデル管理モジュールをさらに含み、
前記フレームワーク部は、前記図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルのそれぞれに連動して、前記複数の細部機能のディープラーニング訓練を順次に行って、学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを生成する、伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバ。
【請求項2】
前記訓練用データセットを訓練用データセットテーブルに変換するデータセット管理モジュールをさらに含み、
前記訓練用データセットテーブルは、訓練用原本イメージ及びラベル情報を備え、
前記ラベル情報は、前記原本イメージの分類情報として、図面種類情報、主特徴情報、及び従特徴情報を備え、
前記データセット管理モジュールは、前記訓練用データセットテーブルを用いて、前記原本イメージ及び前記ラベル情報のうち、図面種類情報を備える第1訓練用データセットテーブル、前記第1訓練用データセットテーブルに前記ラベル情報のうち、前記主特徴情報をさらに付加した第2訓練用データセットテーブル、及び前記第1訓練用データセットテーブルに前記ラベル情報のうち、前記主特徴情報のうち少なくとも一部及び前記ラベル情報のうち、前記従特徴情報をさらに付加した第3訓練用データセットテーブルを生成し、
前記フレームワーク部は、前記図面種類検出訓練用モデルテーブル及び前記第1訓練用データセットテーブルを用いて、図面種類情報を検出するディープラーニング訓練を行って、学習された図面種類検出学習モデルを生成し、
前記データセット管理モジュールは、前記図面種類検出学習モデルによる学習された図面種類検出モデルテーブルを生成する、請求項1に記載のサーバ。
【請求項3】
前記フレームワーク部は、前記主特徴検出訓練用モデルテーブル及び前記第2訓練用データセットテーブルを用いて、主特徴情報を検出するディープラーニング訓練を行って、学習された主特徴検出学習モデルを生成し、
前記データセット管理モジュールは、前記主特徴検出学習モデルによる学習された主特徴検出モデルテーブルを生成し、
前記フレームワーク部は、前記従特徴検出訓練用モデルテーブル及び前記第3訓練用データセットテーブルを用いて、従特徴情報を検出するディープラーニング訓練を行って、学習された従特徴検出学習モデルを生成し、
前記データセット管理モジュールは、前記従特徴検出学習モデルによる学習された従特徴検出モデルテーブルを生成する、請求項2に記載のサーバ。
【請求項4】
前記フレームワーク部で前記複数の細部機能のそれぞれのディープラーニングを行って、出力された結果物を備える検出情報を生成及びアップデートする補助管理モジュールをさらに含み、
前記入出力部は、前記ユーザから推論用伝統家屋図面を推論用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する名称検出機能の推論クエリーを入力され、
前記クエリー分析部は、前記推論クエリーを分析して、前記推論クエリーの機能を果たすための複数の細部機能として、前記順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出し、
前記学習モデル管理モジュールは、前記複数の学習モデルテーブルのうち、既学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを選択し、
前記フレームワーク部は、前記図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルのそれぞれに連動して、前記複数の細部機能のディープラーニング推論を順次に行う、請求項3に記載のサーバ。
【請求項5】
前記データセット管理モジュールは、前記推論用データセットを推論用データセットテーブルに変換し、
前記フレームワーク部は、前記図面種類検出モデルテーブルによる図面種類検出学習モデルを用いて、前記推論用データセットテーブルに備えられた推論用原本イメージの図面種類情報を検出するディープラーニング推論を行い、
前記補助管理モジュールは、前記推論用原本イメージの固有番号であるイメージID及び前記図面種類情報を備える検出情報を生成し、
前記データセット管理モジュールは、前記推論用原本イメージと前記図面種類情報とを備える中間第1データセットテーブルを生成する、請求項4に記載のサーバ。
【請求項6】
前記フレームワーク部は、前記主特徴検出モデルテーブルによる主特徴検出学習モデルを用いて、前記中間第1データセットテーブルから前記推論用原本イメージの主特徴情報を検出するディープラーニング推論を行い、
前記補助管理モジュールは、前記検出情報が前記主特徴情報をさらに備えるようにアップデートし、
前記データセット管理モジュールは、前記中間第1データセットテーブルに前記主特徴情報のうち少なくとも一部をさらに備える中間第2データセットテーブルを生成し、
前記フレームワーク部は、前記従特徴検出モデルテーブルによる従特徴検出学習モデルを用いて、前記中間第2データセットテーブルから従特徴情報を検出するディープラーニング訓練を行い、
前記補助管理モジュールは、前記検出情報が前記従特徴情報をさらに備えるようにアップデートする、請求項5に記載のサーバ。
【請求項7】
前記図面種類検出機能は、前記伝統家屋図面が、正面図、側面図、横断面図、縦断面図、細部正面図及び細部側面図のうちいずれであるかを検出する機能であり、
原本イメージが正面図及び側面図である場合、
前記主特徴検出学習モデルは、構造名称として、第1軸部情報、第1杭包情報、及び第1屋根情報を検出し、
前記従特徴検出学習モデルは、前記第1軸部情報を用いて第1基壇情報を検出し、前記第1軸部情報と前記第1杭包情報とを用いて第1柱情報を検出し、
前記原本イメージが横断面図である場合、
前記主特徴検出学習モデルは、第2杭包情報を検出し、
前記従特徴検出学習モデルは、前記原本イメージが横断面図である情報
及び第2軸部情報を用いて、第1道里情報及び第1梁情報を検出し、
前記原本イメージが縦断面図である場合、
前記主特徴検出学習モデルは、第3杭包情報を検出し、
前記従特徴検出学習モデルは、前記原本イメージが縦断面図である情報
及び第3軸部情報を用いて、第2道里情報及び第2梁情報を検出し、
前記原本イメージが細部正面図である場合、
前記主特徴検出学習モデルは、第4杭包情報及び第4柱情報のうち少なくとも1つである第1区分情報、及び正面の檐遮情報を検出し、
前記従特徴検出学習モデルは、前記原本イメージが細部正面図である情報及び前記第1区分情報を用いて、第1柱頭情報及び第1小櫨情報を検出し、前記原本イメージが細部正面図である情報及び前記第1柱頭情報を用いて正面の山彌情報を検出し、
前記原本イメージが細部側面図である場合、
前記主特徴検出学習モデルは、第5杭包情報及び第5柱情報のうち少なくとも1つである第2区分情報、及び断面の山彌情報を検出し、
前記従特徴検出学習モデルは、前記原本イメージが細部側面図である情報及び前記第2区分情報を用いて、第2柱頭情報及び第2小櫨情報を検出し、前記原本イメージが細部側面図である情報及び前記第2柱頭情報を用いて断面の山彌情報を検出する、請求項3に記載のサーバ。
【請求項8】
前記複数の細部機能による複数の学習モデルのうち、第1学習モデルは、複数のタスクを備え、
前記複数のタスクは、
第1学習モデルテーブルに備えられたネットワークテーブルの複数の行と対応し、
前記複数のタスクのそれぞれは、前記ネットワークテーブルの行番号に対応する固有番号をそれぞれ備え、
前記複数のタスクのうち、一連の第1
タスク及び第2タスクを複数の分散サーバのうち、第1分散サーバで行わせてディープラーニング推論を分散行わせる制御部をさらに含み、
前記複数の分散サーバは、データベースと連動するディープラーニングフレームワークをそれぞれ備え、
前記制御部は、
前記第1学習モデルテーブルの固有番号、
前記第1タスクの直前タスクである第3タスクの第3結果値リスト、及び
前記第2タスクの固有番号と対応する前記ネットワークテーブルの第2行番号を前記第1分散サーバに伝送する、請求項1に記載のサーバ。
【請求項9】
前記学習モデル管理モジュールは、前記複数の細部機能のうち、第1細部機能に関連した既学習された第1学習モデルテーブルがない場合、前記第1細部機能に適した第2学習モデルテーブルを選択し、
前記第2学習モデルテーブルは、これと関連した訓練用データセットテーブルに基づいて前記第1細部機能のディープラーニング訓練で前記第1学習モデルテーブルに変換され、
前記ディープラーニング訓練は、複数の分散サーバと分散処理されて行われ、
前記複数の分散サーバは、データベースと連動するディープラーニングフレームワークをそれぞれ備える、請求項1に記載のサーバ。
【請求項10】
データベースフォーマットの学習モデルテーブル及びデータセットテーブルを用いてディープラーニングを行うフレームワーク部を備える、ディープラーニングフレームワーク応用データベースサーバの伝統家屋図面の構造名称を分類する方法であって、
ユーザから複数の訓練用伝統家屋図面を訓練用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する構造名称検出機能の訓練クエリーを入力される段階と、
前記訓練クエリーを分析して、前記訓練クエリーの機能を果たすための複数の細部機能として上位から下位順に順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出する段階と、
複数の学習モデルテーブルのうち、前記複数の細部機能に適した未学習の図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルを選択する段階と、
前記図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルのそれぞれに連動して、前記複数の細部機能のディープラーニング訓練を順次に行って、学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを生成する段階と、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバ及びその方法に係り、ディープラーニング訓練及び推論によってイメージから伝統家屋図面の構造名称を主体的及び従属的に検出するサーバ及びその方法に関する。
【背景技術】
【0002】
ディープラーニング技術基盤の知能を提供する学習エンジンを生成するためには、ディープネットワーク設計、学習関数設定、パラメータチューニングなどさまざまな難関がある。このような問題は、ディープラーニング専門家でなければ容易なものではなく、誰にでも容易にディープラーニング基盤の学習エンジンを持ちにくい。
また、学習エンジンを生成する度に、ディープラーニングの共通の要素を重複使用して、同じ過程を繰り返し行わなければならないという問題がある。そして、ディープラーニング訓練時に、1つのサーバや装置を利用する場合、そのデータの量によって訓練及び推論時間が増加する。
また、ディープラーニングフレームワークデータベースサーバを通じて多様な応用が可能であるが、2種以上の機能に対する応用が必要である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、ディープラーニングに関する専門的知識のないユーザであっても難点なしにユーザの要請クエリーによって情報データベースに保存されたデータをディープラーニング方式で学習してクエリーに対応するデータを推論可能にし、既学習されたモデルを使用可能にし、ディープラーニング訓練及び推論時間を短縮させ、イメージから人物の性別及び年齢を分類する応用が可能な、伝統家屋図面から構造名称を独立して検出する以外に、他の構造名称との配置関係などを通じて従属的に検出するディープラーニングフレームワーク応用データベースサーバ及び方法を提供するところにある。
【課題を解決するための手段】
【0005】
本発明の一実施形態による伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバは、ユーザから複数の訓練用伝統家屋図面を訓練用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する構造名称検出機能の訓練クエリーを入力される入出力部;前記訓練クエリーを分析して、前記訓練クエリーの機能を果たすための複数の細部機能として抽出するクエリー分析部;データベースとして、複数の学習モデルテーブル及びデータセットテーブルを備える保存部;及び前記データベースと連動し、前記学習モデルテーブル及び前記データセットテーブルを用いて、前記複数の細部機能のディープラーニング訓練を行うフレームワーク部;を含み、前記クエリー分析部は、前記訓練クエリーを前記複数の細部機能として上位から下位順に順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出し、前記複数の学習モデルテーブルのうち、前記複数の細部機能に適した未学習の図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルを選択する学習モデル管理モジュールをさらに含み、前記フレームワーク部は、前記図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルのそれぞれに連動して、前記複数の細部機能のディープラーニング訓練を順次に行って、学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを生成することができる。
【0006】
また、前記訓練用データセットを訓練用データセットテーブルに変換するデータセット管理モジュールをさらに含み、前記訓練用データセットテーブルは、訓練用原本イメージ及びラベル情報を備え、前記ラベル情報は、前記原本イメージの分類情報として、図面種類情報、主特徴情報、及び従特徴情報を備え、前記データセット管理モジュールは、前記訓練用データセットテーブルを用いて、前記原本イメージ及び前記ラベル情報のうち、図面種類情報を備える第1訓練用データセットテーブル、前記第1訓練用データセットテーブルに前記ラベル情報のうち、前記主特徴情報をさらに付加した第2訓練用データセットテーブル、及び前記第1訓練用データセットテーブルに前記ラベル情報のうち、前記主特徴情報のうち少なくとも一部及び前記ラベル情報のうち、前記従特徴情報をさらに付加した第3訓練用データセットテーブルを生成し、前記フレームワーク部は、前記図面種類検出訓練用モデルテーブル及び前記第1訓練用データセットテーブルを用いて、図面種類情報を検出するディープラーニング訓練を行って、学習された図面種類検出学習モデルを生成し、前記データセット管理モジュールは、前記図面種類検出学習モデルによる学習された図面種類検出モデルテーブルを生成することができる。
【0007】
また、前記フレームワーク部は、前記主特徴検出訓練用モデルテーブル及び前記第2訓練用データセットテーブルを用いて、主特徴情報を検出するディープラーニング訓練を行って、学習された主特徴検出学習モデルを生成し、前記データセット管理モジュールは、前記主特徴検出学習モデルによる学習された主特徴検出モデルテーブルを生成し、前記フレームワーク部は、前記従特徴検出訓練用モデルテーブル及び前記第3訓練用データセットテーブルを用いて、従特徴情報を検出するディープラーニング訓練を行って、学習された従特徴検出学習モデルを生成し、前記データセット管理モジュールは、前記従特徴検出学習モデルによる学習された従特徴検出モデルテーブルを生成することができる。
【0008】
また、前記フレームワーク部で前記複数の細部機能のそれぞれのディープラーニングを行って、出力された結果物を備える検出情報を生成及びアップデートする補助管理モジュールをさらに含み、前記入出力部は、前記ユーザから推論用伝統家屋図面を推論用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する名称検出機能の推論クエリーを入力され、前記クエリー分析部は、前記推論クエリーを分析して、前記推論クエリーの機能を果たすための複数の細部機能として、前記順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出し、前記学習モデル管理モジュールは、前記複数の学習モデルテーブルのうち、既学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを選択し、前記フレームワーク部は、前記図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルのそれぞれに連動して、前記複数の細部機能のディープラーニング推論を順次に行うことができる。
【0009】
また、前記データセット管理モジュールは、前記推論用データセットを推論用データセットテーブルに変換し、前記フレームワーク部は、前記図面種類検出モデルテーブルによる図面種類検出学習モデルを用いて、前記推論用データセットテーブルに備えられた推論用原本イメージの図面種類情報を検出するディープラーニング推論を行い、前記補助管理モジュールは、前記推論用原本イメージの固有番号であるイメージID及び前記図面種類情報を備える検出情報を生成し、前記データセット管理モジュールは、前記推論用原本イメージと前記図面種類情報とを備える中間第1データセットテーブルを生成することができる。
【0010】
また、前記フレームワーク部は、前記主特徴検出モデルテーブルによる主特徴検出学習モデルを用いて、前記中間第1データセットテーブルから前記推論用原本イメージの主特徴情報を検出するディープラーニング推論を行い、前記補助管理モジュールは、前記検出情報が前記主特徴情報をさらに備えるようにアップデートし、前記データセット管理モジュールは、前記中間第1データセットテーブルに前記主特徴情報のうち少なくとも一部をさらに備える中間第2データセットテーブルを生成し、前記フレームワーク部は、前記従特徴検出モデルテーブルによる従特徴検出学習モデルを用いて、前記中間第2データセットテーブルから従特徴情報を検出するディープラーニング訓練を行い、前記補助管理モジュールは、前記検出情報が前記従特徴情報をさらに備えるようにアップデートすることができる。
【0011】
また、前記図面種類検出機能は、前記伝統家屋図面が、正面図、側面図、横断面図、縦断面図、細部正面図及び細部側面図のうちいずれであるかを検出する機能である。原本イメージが正面図及び側面図である場合、前記主特徴検出学習モデルは、構造名称として、第1軸部情報、第1杭包情報、及び第1屋根情報を検出し、前記従特徴検出学習モデルは、前記第1軸部情報を用いて第1基壇情報を検出し、前記第1軸部情報と前記第1杭包情報とを用いて第1柱情報を検出することができる。前記原本イメージが横断面図である場合、前記主特徴検出学習モデルは、第2杭包情報を検出し、前記従特徴検出学習モデルは、前記原本イメージが横断面図である情報及び前記第2軸部情報を用いて、第1道里情報及び第1梁情報を検出することができる。前記原本イメージが縦断面図である場合、前記主特徴検出学習モデルは、第3杭包情報を検出し、前記従特徴検出学習モデルは、前記原本イメージが縦断面図である情報及び前記第3軸部情報を用いて、第2道里情報及び第2梁情報を検出することができる。前記原本イメージが細部正面図である場合、前記主特徴検出学習モデルは、第4杭包情報及び第4柱情報のうち少なくとも1つである第1区分情報、及び正面の檐遮情報を検出し、前記従特徴検出学習モデルは、前記原本イメージが細部正面図である情報及び前記第1区分情報を用いて、第1柱頭情報及び第1小櫨情報を検出し、前記原本イメージが細部正面図である情報及び前記第1柱頭情報を用いて正面の山彌情報を検出することができる。前記原本イメージが細部側面図である場合、前記主特徴検出学習モデルは、第5杭包情報及び第5柱情報のうち少なくとも1つである第2区分情報、及び断面の山彌情報を検出し、前記従特徴検出学習モデルは、前記原本イメージが細部側面図である情報及び前記第2区分情報を用いて、第2柱頭情報及び第2小櫨情報を検出し、前記原本イメージが細部側面図である情報及び前記第2柱頭情報を用いて断面の山彌情報を検出することができる。
【0012】
また、前記複数の細部機能による複数の学習モデルのうち、第1学習モデルは、複数のタスクを備え、前記複数のタスクは、前記第1学習モデルテーブルに備えられたネットワークテーブルの複数の行と対応し、前記複数のタスクのそれぞれは、前記ネットワークテーブルの行番号に対応する固有番号をそれぞれ備え、前記複数のタスクのうち、一連の第1ないし第2タスクを複数の分散サーバのうち、第1分散サーバで行わせてディープラーニング推論を分散行わせる制御部をさらに含み、前記複数の分散サーバは、データベースと連動するディープラーニングフレームワークをそれぞれ備え、前記第1学習モデルテーブルを備えることができる。前記制御部は、前記第1学習モデルテーブルの固有番号、前記第1タスクの直前タスクである第3タスクの第3結果値リスト、及び前記第2タスクの固有番号と対応する前記ネットワークテーブルの第2行番号を前記第1分散サーバに伝送しうる。前記制御部は、前記複数の分散サーバのうち、第2分散サーバから前記学習モデルテーブルの固有番号、前記複数のタスクのうち、第4タスクの第4結果値リストを受信すれば、前記第4結果値リストを前記複数のタスクのうち、一連の最初タスクから第4タスクまで行われた結果値リストとして決定することができる。前記複数のネットワークテーブルのうち、第5行番号は、前記第4行番号の直後に配されたものであり、前記制御部は、前記第2分散サーバからタスク指示終了行である第6行番号をさらに受信すれば、前記フレームワーク部で前記第4結果値リストを入力とし、前記第5行番号ないし前記第6行番号の演算を行わせる。前記制御部は、前記第1分散サーバが前記複数の分散サーバのうち、第3分散サーバに、前記ネットワークテーブル固有番号、前記第2タスクの結果値リスト及びタスク指示終了行である第7行番号を伝送させうる。前記フレームワーク部で行う前記第1ないし第2タスク遂行時間は、前記第1分散サーバとの通信時間及び前記第1分散サーバでの前記第1ないし第2タスク遂行時間の和よりも大きなものである。
【0013】
また、前記学習モデル管理モジュールは、前記複数の細部機能のうち、第1細部機能に関連した既学習された第1学習モデルテーブルがない場合、前記第1細部機能に適した第2学習モデルテーブルを選択し、前記第2学習モデルテーブルは、これと関連した訓練用データセットテーブルに基づいて前記第1細部機能のディープラーニング訓練で前記第1学習モデルテーブルに変換される。前記ディープラーニング訓練は、複数の分散サーバと分散処理されて行われ、前記複数の分散サーバは、データベースと連動するディープラーニングフレームワークをそれぞれ備えることができる。前記訓練用データセットの配置サイズ、前記第2学習モデルテーブル、及び前記訓練用データセットテーブルを複数の分散サーバに拡散する制御部をさらに含み、前記ディープラーニングフレームワーク応用データベースサーバは、前記複数の分散サーバのうち、第1分散サーバとして機能し、前記制御部は、前記訓練用データセットテーブルのデータ順序をランダムに変更した後、前記配置サイズに合わせて分割して配置データセットテーブルに変換し、前記フレームワーク部は、前記第2学習モデルテーブルに属したアーキテクチャーテーブルを用いてモデルアーキテクチャーを構築し、前記第2学習モデルテーブルに属した学習パラメータテーブルを初期化した後、前記モデルアーキテクチャーに割り当てて第2学習モデルを生成し、前記第2学習モデルに対して前記配置データセットテーブルの複数のミニ配置を用いてディープラーニング訓練を行うことができる。前記フレームワーク部は、前記複数のミニ配置のうち1つのミニ配置に対する配置学習が終了すれば、新学習パラメータを導出し、前記制御部は、前記新学習パラメータを前記複数の分散サーバの残りの分散サーバに拡散し、前記新学習パラメータが生成されれば、前記新学習パラメータと前記残りの分散サーバから拡散された少なくとも1つの学習パラメータとを統合して、次の配置学習に適用する学習パラメータにアップデートする統合部をさらに含みうる。前記統合部は、割り当てられたあらゆるエポックが終了すれば、前記フレームワーク部で導出した最後の学習パラメータと前記残りの分散サーバから最後に拡散された少なくとも1つの学習パラメータとを統合して最終学習パラメータを導出し、前記制御部は、訓練されたモデルアーキテクチャー及び前記最終学習パラメータを学習された前記第1学習モデルテーブルに変換することができる。前記第1統合部は、前記複数の分散サーバが周期的に配置学習の開始を共にする同期式学習である場合、同一周期から導出されたあらゆる学習パラメータを周期別に統合する、システム。前記第1フレームワーク部は、前記複数の分散サーバのそれぞれで独立して配置学習する非同期式学習である場合、前記第2分散サーバの配置学習の終了と無関係に次の配置学習を進行する、システム。前記第1統合部の統合に使われる前記第2分散サーバから拡散された学習パラメータは、最後に拡散されたものであり、前記第1統合部で統合に使われていないものである、システム。前記第1統合部は、統合時に、あらゆる最新の学習パラメータに対して統合する全部統合政策、及び少なくとも1つの他学習パラメータが最新であれば、統合する一部統合政策のうち何れか1つの政策に従う、システム。前記第1制御部は、前記第1フレームワーク部で毎配置学習が終了すれば、新学習パラメータが拡散される即時共有政策、一定時間が経過されれば、最新学習パラメータが拡散される時間周期別共有政策、及び一定個数の配置学習が終了すれば、最新学習パラメータが拡散される学習周期別共有政策のうち何れか1つの政策によって拡散する、システム。
【0014】
本発明の一実施形態による構造名称分類方法は、データベースフォーマットの学習モデルテーブル及びデータセットテーブルを用いてディープラーニングを行うフレームワーク部を備える、ディープラーニングフレームワーク応用データベースサーバの伝統家屋図面の構造名称を分類する方法であって、ユーザから複数の訓練用伝統家屋図面を訓練用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する構造名称検出機能の訓練クエリーを入力される段階;前記訓練クエリーを分析して、前記訓練クエリーの機能を果たすための複数の細部機能として上位から下位順に順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出する段階;複数の学習モデルテーブルのうち、前記複数の細部機能に適した未学習の図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルを選択する段階;前記図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルのそれぞれに連動して、前記複数の細部機能のディープラーニング訓練を順次に行って、学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを生成する段階;を含みうる。
【発明の効果】
【0015】
本発明によれば、クエリー基盤のディープラーニング技術を利用することにより、ディープラーニングフレームワークがデータベースにプラグイン形態で連結されてユーザの要請クエリーによってデータベースに保存されたデータを使用してディープラーニング訓練及び推論を可能にして、専門知識のないユーザがディープラーニング訓練及び推論を利用できる。ディープラーニングを分散処理して、ディープラーニング遂行に必要な時間を短縮させることができる。また、イメージから単純な形状または類似した構造名称を他の構造や特徴を通じて分類することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の一実施形態によるクエリー基盤ディープラーニング推論システムの全体的な構成を概略的に示す構成図である。
【
図2】本発明の一実施形態によるデータベースサーバの制御構成図である。
【
図3】本発明の一実施形態によるデータ管理構成図である。
【
図4】本発明の一実施形態によるデータベース構造図である。
【
図5】本発明の一実施形態による変換部の制御構成図である。
【
図6】本発明の一実施形態による変換部の変換動作図である。
【
図7】本発明の一実施形態による変換部の変換動作図である。
【
図8】本発明の実施形態によるクエリー基盤の機械学習技術の遂行流れを示すフローチャートである。
【
図9】本発明の実施形態によるクエリー基盤のディープラーニング方法を説明する動作フローチャートである。
【
図10】本発明の他の実施形態によるデータベース連動ディープラーニング分散システムを概略的に示す構成図である。
【
図11】
図10によるメインサーバ及び分散サーバのブロック構成図である。
【
図12】メインサーバのデータセット及び分散サーバの訓練用データセットを示す図である。
【
図13】
図10のシステムの訓練方法についてのフローチャートである。
【
図14】
図10のシステムの推論方法についてのフローチャートである。
【
図15】
図13の非同期式分散サーバのそれぞれ他の実施形態による信号フローチャートである。
【
図16】
図13の非同期式分散サーバのそれぞれ他の実施形態による信号フローチャートである。
【
図17】
図13の非同期式分散サーバのそれぞれ他の実施形態による信号フローチャートである。
【
図18】
図13が同期式分散サーバの互いに異なる実施形態による信号フローチャートである。
【
図19】
図13が同期式分散サーバの互いに異なる実施形態による信号フローチャートである。
【
図22】
図20による中間結果値テーブルの一部を示す図である。
【
図23】ネットワークテーブルの一部を示す図である。
【
図24】本発明の他の実施形態による伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバの一部構成の細部ブロック図である。
【
図25】本発明の他の実施形態によるサーバの伝統家屋図面の構造名称を分類する方法のフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して、本発明をより詳細に説明する。
第1、第2などの用語は、多様な構成要素の説明に使われうるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、1つの構成要素を他の構成要素から区別する目的のみで使われる。例えば、本発明の権利範囲を外れずに、第1構成要素は、第2構成要素と名付けられ、同様に、第2構成要素も、第1構成要素とも名付けられる。「及び/または」という用語は、複数の関連した記載の項目の組み合わせ、または複数の関連した記載の項目のうちの何れかの項目を含む。
ある構成要素が、他の構成要素に「連結されて」、または「接続されて」いるという記載は、その他の構成要素に直接に連結または接続されてもいるが、中間に他の構成要素が存在することもできると理解しなければならない。一方、ある構成要素が、他の構成要素に「直接連結されて」、または「直接接続されて」いるという記載は、中間に他の構成要素が存在しないものと理解しなければならない。また、ネットワーク上の第1構成要素と第2構成要素とが連結または接続されているということは、有線または無線で第1構成要素と第2構成要素との間にデータを送受信することができるということを意味する。
また、以下の説明で使われる構成要素に対する接尾辞「モジュール」及び「部」は、単に本明細書の作成の容易さのみが考慮されて付与されるものであって、それ自体で特に重要な意味または役割を付与するものではない。したがって、前記「モジュール」及び「部」は、互いに混用されて使われることもある。
【0018】
このような構成要素は、実際の応用で具現される時、必要に応じて2以上の構成要素が1つの構成要素に合わせられるか、あるいは1つの構成要素が2以上の構成要素に細分されて構成することができる。図面全体を通じて同一または類似した構成要素に対しては、同じ図面符号を付与し、同じ図面符号を有する構成要素についての詳しい説明は、前述した構成要素についての説明に代替されて省略される。
また、本発明は、本明細書に表示された実施形態のあらゆる可能な組み合わせを網羅する。本発明の多様な実施形態は、互いに異なるが、互いに排他的ではない。本明細書に記述された特定の形状、構造、機能、及び特性の一実施形態は、他の実施形態で具現可能である。例えば、第1及び第2実施形態で言及される構成要素は、第1及び第2実施形態のあらゆる機能を行うことができる。
【0019】
図1は、本発明の一実施形態によるクエリー基盤ディープラーニング推論システムの全体的な構成を概略的に示す構成図である。
図2は、本発明の一実施形態によるデータベースサーバの制御構成図である。
図3は、本発明の一実施形態によるデータ管理構成図である。
図4は、本発明の一実施形態によるデータベース構造図である。
図5は、本発明の一実施形態による変換部の制御構成図である。
図6及び
図7は、本発明の一実施形態による変換部の変換動作図である。
図8は、本発明の実施形態によるクエリー基盤の機械学習技術の遂行流れを示すフローチャートである。
図9は、本発明の実施形態によるクエリー基盤のディープラーニング方法を説明する動作フローチャートである。
図1を参照すれば、本発明の一実施形態によるクエリー基盤ディープラーニング推論システム1は、クエリー基盤の機械学習技術を適用することができる。このために、クエリー基盤ディープラーニング推論システム1は、データベースサーバ10及び端末機20を含みうる。
【0020】
ここで、クエリー基盤のディープラーニング技術は、ユーザが端末機20を通じてデータベース(DB)サーバ10にディープラーニングなどの要請をクエリーに伝送すれば、データベースサーバ10がデータベースサーバ10に保存されたデータを用いてデータベースサーバ10に連結されたディープラーニングフレームワークが機械学習、ディープラーニング、推論などが行われる技術を意味する。
ディープラーニングは、多様な非線形変換技法の組み合わせを通じて高いレベルの抽象画を試みるマシンラーニング(機械学習)アルゴリズムの集合である。マシンラーニングは、人工知能の一分野であって、コンピュータが学習可能にするアルゴリズムと技術とを開発する分野を意味する。人工知能は、ヒトの知能を有している機能を備えたコンピュータシステムを意味し、ヒトの知能を機械などに人工的に具現したものを意味する。本明細書において、「ディープラーニング」は、ディープラーニング技術自体に限定されず、機械学習や人工知能まで拡張されて解析される。
【0021】
端末機20は、スマートフォン(Smart Phone)、携帯端末機(Portable Terminal)、移動端末機(Mobile Terminal)、パソコン(Personal Computer)、ノート型パソコン、タブレットPC(Tablet PC)、ウルトラブック(ultrabook)、ウェアラブルデバイス(Wearable Device)、スマートTVなどのうち何れか1つであるか、組み合わせられたものである。端末機20は、サーバコンピュータである。
端末機20は、データベースサーバ10(以下、DBサーバ)に接続することができる。ユーザや管理者は、端末機20を通じてDBサーバ10にクエリーを送るか、クエリーによる結果を受け取ることができる。
【0022】
DB(Database)サーバ10は、データベースを運用するか、データベースと連結されて、それを制御するサーバである。DBサーバ10は、統合管理されるデータの集合(データベース)及び、それを管理するミドルウェアが含まれた概念を意味する。DBサーバ10は、データベース管理システム(DBMS)を意味する。データベースは、DBサーバ10またはデータベース管理システム(DBMS)の意味としても使われる。
DBサーバ10は、クエリーによって作業するか、クエリーによる結果を生成するあらゆる装置を意味する。クエリーは、SQL(Structured Query Language)文法に従える。DBサーバ10のデータベースは、関係型データベースであることが望ましい。
【0023】
端末機20は、ディープラーニング推論クエリーを入力し、DBサーバ10からクエリーに対応した推論結果を受信することができる。端末機20は、クエリーを通じてDBサーバ10に多様な機能を要請し、DBサーバ10から結果を応答される。端末機20は、クエリーを通じてDBサーバ10に保存されたデータを確認または修正するか、新たなデータを追加することができる。端末機20は、クエリーを通じてDBサーバ10に保存された学習モデルを確認または修正し、新たな学習のための学習モデルを生成することができる。端末機20は、クエリーを通じてデータと学習モデルとを選択し、パラメータを設定して機械学習を要請し、学習中間結果及び最終結果を確認することができる。端末機20は、クエリーを通じてデータと既学習された学習モデルとを選択して機械推論を要請し、推論結果を確認することができる。
【0024】
図2を参照すれば、DBサーバ10は、制御部100、保存部200、フレームワーク部300、変換部360、及び入出力部370を含みうる。
入出力部370は、自体的なインターフェース装置である。入出力部370は、入力装置と出力装置とをそれぞれ別個に備えることができる。出力装置は、ビデオ信号及び/またはオーディオ信号を出力することができる。出力装置は、モニタなどのディスプレイ装置、及び/またはスピーカーなどである。入力装置は、ユーザがDBサーバ10の動作制御のために入力する入力データを発生させうる。入力装置は、キーボード、キーパッド、タッチパッド、マウスなどのユーザ操作装置を備えることができる。入力及び出力装置は、タッチスクリーンのように1つに具現可能である。
【0025】
入力装置は、オーディオ信号及び/またはビデオ信号をDBサーバ10に入力することができる。入力装置は、カメラとマイクなどを備えることができる。入力装置は、センサー装置を含みうる。センサー装置は、温度、湿度、明るさ、ホコリ、圧力、振動、電圧、電流、平行、磁気、照度、近接、距離、勾配、ガス、熱感知、火花、金属などの物理量などを感知し、これに対するデータを生成することができる。
入出力部370は、DBサーバ10に連結されるあらゆる外部機器とのインターフェースの役割を行うことができる。インターフェースの例としては、有線/無線データポート、メモリカード(Memory card)のようなカードのソケット、オーディオI/O(Input/Output)端子、ビデオI/O端子などがある。入出力部370は、外部機器からデータを伝送されるか、DBサーバ10内部のデータを外部機器に伝送させうる。
入出力部370は、通信機能を行うことができる。通信は、ブルートゥース(登録商標)(登録商標)(Bluetooth)、RFID(Radio Frequency Identification)、UWB(Ultra Wideband)、ジグビー(ZigBee)などのうち少なくとも1つの近距離通信プロトコルが用いられる。通信は、インターネット接続を含みうる。入出力部370は、通信を通じて外部装置、例えば、端末機20とデータを送受信することができる。
【0026】
本明細書において、端末機20を別途の装置として図示したが、入出力部370は、端末機20の機能を行うことができる。すなわち、端末機20は、入出力部370に代替(省略)されて、本発明が実施される。
入出力部370は、ユーザの通信手段(端末機2)との通信を担当し、ユーザの多様な形態の接続手段である通信装備及び電算装備との通信プロトコル及びネットワーク上のデータフォーマットを制御することができる。データフォーマットの例として、ONNX(Open Neural Network exchange format)、NNEF(Neural Network Exchange Format)またはCSV(Comma-separated values)などがある。
【0027】
入出力部370は、ユーザから制御命令やクエリーを入力され、ユーザに結果を提供するチャネルである。
保存部200は、DBサーバ10の動作に必要なデータとプログラムなどを保存することができる。保存部200は、制御部100の処理及び制御のためのプログラムが保存され、入力または出力されるデータの臨時保存のための機能を行うことができる。
保存部200は、データをデータベースに保存する装置、またはデータベース自体を意味する。
保存部200は、作業遂行及び既作業が行われた内訳及びユーザなどについての情報を保存することができる。保存部200は、外部に別途に備えられる保存装置または外部電算網に備えられる保存装置などとの接続を通じて情報及び/またはデータを保存することができる。ビッグデータの特徴を有するディープラーニング結果を分散保存するか、外部に別途に保存して、要請時に呼び出して適用することができる。
【0028】
制御部100は、DBサーバ10の各部の動作を制御してDBサーバ10の全般的な制御機能を実行することができる。
制御部100は、データベース内のデータを接近するか、データを管理するか、データをテーブルで生成することができる。データ管理は、データを照会、修正、及び/またはアップロードなどを意味する。
【0029】
制御部100は、ユーザのクエリーを解析または実行するか、クエリーによる作業が行われるか、結果を提供するためのあらゆる機能を制御することができる。
図3及び
図4を参照すれば、制御部100は、クエリー分析部110、データセット管理モジュール120、学習モデル管理モジュール130、及び結果管理モジュール160を備え、保存部200は、クエリー分析値210、データセット220、学習モデル230、及び学習結果260を保存することができる。
【0030】
クエリー分析部110は、ユーザが要請したクエリーを解析及び/または分析して、それをクエリー分析値210で保存することができる。クエリー分析値210は、クエリーの機能及び/または内容を備えることができる。クエリーは、大きく訓練(学習)と推論とに分類される。クエリー分析値210は、クエリーが訓練であるか、推論であるかが区別される値を保存することができる。
クエリーの機能は、ユーザがディープラーニング遂行を通じて得ようとする結果値を導出するための要請である。例えば、文字認識せよとのクエリーは、イメージデータから文字を検出して文字の内容を分類せよとの機能である。
クエリーの機能は、ユーザの要請に限定されるものではない。例えば、ユーザの要請は1つであるが、それを行うために複数の細部機能が必要である。クエリー分析部110は、クエリーを分析してディープラーニング遂行に必要な複数の細部機能を抽出することができる。
【0031】
複数の細部機能は、上位範疇と下位範疇とに分けることすることができる。例えば、人物の性別を区別せよとのクエリーの場合、上位範疇のイメージデータから顔面を検出する細部機能と下位範疇の検出された顔面の性別を分類する細部機能として抽出される。この場合、上位範疇の細部機能を先に行った後に、下位範疇の細部機能を行うことができる。
クエリーの内容は、機能の以外に付加的な多様なものである。例えば、特定学習モデルを選択するか、訓練用データセットまたは推論用データセットを指定するものなどがある。
データセット管理モジュール120で管理されるデータセット220は、学習及び推論に使われる同じ形式を有した情報またはデータの集合を意味する。情報またはデータは、数字、文字、イメージ、映像、及び音声などを含み、機械学習に使われるあらゆる種類の情報またはデータである。
【0032】
データセット220で群集させることができるデータの同じ形式とは、拡張子を基準に定義することができる。例として、イメージ情報の場合、その拡張子がイメージを示す拡張子である場合、いずれも同じカテゴリーのデータセットで群集するものである。
ここで、例のために、イメージ情報を例として説明しているが、使われるデータは、イメージだけではなく、前述した数字、文字、イメージ、映像、音声など機械学習に使われるあらゆる種類のデータになる。
【0033】
データセット管理モジュール120は、外部から入力された情報またはデータ(以下、「データ」)をその形式(例えば、拡張子)に同じデータセットで群集させるか、データの内容に分類することができる。データの内容に分類される場合、データセット管理モジュール120は、同じデータ形式に区分するデータ分類学習モデルを利用できる。データ分類学習モデルは、DBサーバ10に保存されて必要時に呼び出されて用いられる。
【0034】
データセット管理モジュール120は、データセット220が学習モデル230によく適用されるようにデータを前処理することができる。データ前処理は、データを学習モデルのテンソル(ベクトル)に合わせて変換することができる。データ前処理の例として、単語をディープラーニングに用いられる事前のインデックス数字に変換する例がある。
データセット管理モジュール120は、第1形式のデータから第2形式のデータに変換することができる。データセット管理モジュール120は、第2形式のデータを1群(群集)のデータセットで管理することができる。例えば、データセット管理モジュール120は、映像データをフレーム別にイメージを抽出して一群のデータセットに変換(decoding)することができる。データセット管理モジュール120は、一連のイメージを映像に変換(encoding)することができる。一連のイメージは、作業されたイメージである。すなわち、データセット管理モジュール120は、動画データを一群のイメージデータセットに変換し、作業処理(モザイク)された一群のイメージデータセットを映像に変換することができる。
【0035】
データセット管理モジュール120は、動画ストリーミングサービスができる。例えば、データセット管理モジュール120は、一連のイメージからエンコーディングして動画ストリーミングサービスするか、保存された動画ファイルからストリーミングサービスすることができる。
データセット管理モジュール120は、新たなデータセットを生成する時、新たなテーブル(データセットテーブル)を生成し、データセットテーブルでデータを照会または修正するか、新たなデータを追加することができる。
【0036】
データセット管理モジュール120は、データベースのテーブルに接近してデータを照会することができる。データセット管理モジュール120は、ユーザが作成したクエリーを通じてデータベースのデータを照会した結果をユーザに示すことができる。データセット管理モジュール120は、ユーザに付与された権限によってデータを修正することができるレベルを制限することができる。データセット管理モジュール120は、ユーザから数値データを入力されるか、1つ以上のファイルを読み出してデータアップロードを進行することができる。データセット管理モジュール120は、学習データのラベルを作成することができるタギング機能を提供することができる。
【0037】
本明細書において、データセットテーブルとデータセットは、互いに同じ意味として使われる。特に、関係型データベースでデータセットは、データセットテーブルで保存された関係型データ形式のデータ集合を意味する。関係型データ形式は、テーブル形式を用いてデータを定義し、説明するモデルを意味する。これは、後述する学習モデルと学習モデルテーブル、学習結果と学習結果テーブルなどでも同様に適用可能である。但し、両者の実体及び/またはフォーマットは変わりうる。
学習モデル(Learning Model;LM)管理モジュール130は、機械学習(ディープラーニングなど)に使われる学習モデルテーブル230を管理することができる。本実施形態において、学習モデルテーブル230は、アーキテクチャーテーブル及び学習パラメータテーブルを備えることができる。アーキテクチャーテーブルは、ネットワークテーブル及びハイパーパラメータテーブルを備えることができる。学習モデルテーブル230は、フレームワーク部300で利用する学習モデルに対応しうる。
【0038】
本実施形態において、学習モデル(学習ネットワークモデル)230は、人工知能アルゴリズム基盤でデータセットに基づく学習される判断モデルであって、神経網(Neural Network)を基盤とするモデルである。本判断モデルは、ヒトの脳構造をコンピュータ上で模擬するように設計される。判断モデルは、ヒトの神経網のニューロン(neuron)を模擬する、加重値を有する複数のネットワークノードを含みうる。複数のネットワークノードは、ニューロンがシナプス(synapse)を通じて信号を送受信するニューロンのシナプティック(synaptic)活動を模擬するようにそれぞれ連結関係を形成しうる。本判断モデルは、機械学習(Machine Learning)モデル、神経網モデル、及び/またはディープラーニング(Deep Learning)モデルを備えることができる。
学習ネットワークモデルは、ANN(Artificial Neural Network、人工神経網)モデル、DNN(Deep Neural Network)モデル、CNN(Convolution Neural Network、コンボリューション神経網)モデル、及びRNN(Recurrent Neural Network)モデルなどのモデルのうち少なくとも1つのモデルを具現することができる。例示されたモデルは、これに限定されるものではない。例えば、LSTM(Long Short Term Memory Network)、GRU(Gated Recurrent Units)、GAN(Generative Adversarial Networks)、SRGAN(Super-resolution GAN)モデルなどがあり、このような名称に限定されるものではない。
【0039】
一般的に、学習モデル230は、アーキテクチャー(architecture)及びパラメータを含みうる。
アーキテクチャー(モデルアーキテクチャー)は、機械学習モデルの構造を意味する。アーキテクチャーは、学習モデルの構造に該当する層(layer)の数、ユニットの数、レイヤの種類、ユニットが連結される方法などを含みうる。それをアーキテクチャー構造で表示することができる。
アーキテクチャーは、学習モデルテーブルのアーキテクチャーテーブルに対応しうる。アーキテクチャーの構造は、ネットワークモデルまたはネットワークと称される。アーキテクチャー構造は、学習モデルテーブルのネットワークテーブルに対応しうる。アーキテクチャーは、アーキテクチャー構造にハイパーパラメータが割り当てられたことを意味する。アーキテクチャーを構築しようとすれば、ネットワークテーブルとハイパーパラメータテーブルとが必要である。
【0040】
パラメータは、ハイパーパラメータと学習パラメータとを備えることができる。
ハイパーパラメータは、入出力とモデル内部を定義し、学習率、最適化方法(学習方法;オプティマイザ(optimzer))、レイヤの種類、入出力大きさ、計算に必要なパラメータなどを備えることができる。ハイパーパラメータは、アーキテクチャーを具現させうる。ハイパーパラメータは、アーキテクチャーの一構成要素で作動する。ハイパーパラメータは、ヒューリスティック基盤、すなわち、ヒトが直接設定することができる。また、ハイパーパラメータの最適化は、別途のオプティマイザモジュールとしても具現される。
学習パラメータは、ウエート(weight)及び/またはバイアス(bias)を備えることができる。ウエートは、入力されたデータと相互作用に使われる値であって、モデルアーキテクチャーに相応するモデルウエートが存在する。学習パラメータは、オプティマイザによって値が変化される。学習パラメータは、単に「パラメータ」と称される。
【0041】
オプティマイザは、学習モデルが所望の機能を有するように学習パラメータを変化させることができる。学習(ディープラーニング)または訓練は、このような学習パラメータの変化を意味する。オプティマイザは、フレームワーク部300や別途の要素によって具現可能である。
【0042】
ハイパーパラメータ及び学習パラメータは、前述したハイパーパラメータテーブル及び学習パラメータテーブルと対応しうる。
学習モデル管理モジュール130は、支援されるレイヤを追加し、レイヤパラメータ(レイヤの種類、入出力大きさ、計算に必要なパラメータ)を調整して新たなネットワークモデルを生成することができる。
学習モデル管理モジュール130は、既存に作成されたネットワークモデルリストを照会することができる。学習モデル管理モジュール130は、既存に作成されたネットワークモデルに新たなレイヤを追加して新たなネットワークモデルを生成することができる。これは、ハイパーパラメータの調整を通じて具現可能である。このような一連が作業は、ユーザのクエリーによって着手される。学習モデル管理モジュール130は、ネットワークモデルを視覚化して示す機能を提供することができる。これを通じて、ユーザは、隠れ層(hidden layer)の構造を容易に見ることができる。
【0043】
学習モデル230は、以外に学習に使用するフィードバック信号を定義する損失関数及び学習進行方式を決定する別途のオプティマイザモジュールをさらに備えることができる。損失関数及びオプティマイザは、フレームワーク部300に備えられうる。
学習モデル230は、データベースで関係型データ形式である学習モデルテーブルフォーマットで保存することができる。
学習モデルの機能の例として、ユーザによって入力されたテキストを認識するか、イメージ/オーディオ/動画などに含まれた音声やテキストを認識するか、認識された音声やテキストでユーザの意向を分析する機能などがある。
学習モデル管理モジュール130は、複数の学習モデルテーブルのうち、クエリーに適した特定学習モデルテーブルを選択することができる。学習モデル管理モジュール130は、クエリーの内容またはモデル選択政策のうち何れか1つによって学習モデルテーブル230を選択することができる。
【0044】
クエリーの内容にユーザが指定した特定学習モデルがある場合、学習モデル管理モジュール130は、当該学習モデルテーブルを選択する。例えば、訓練クエリーによって学習された学習モデルで推論せよとのクエリーの内容である場合、学習モデル管理モジュール130は、当該学習モデルテーブルを選択することが望ましい。
モデル選択政策は、クエリーの機能及び/またはクエリーに関連したデータセットテーブルに基づいて学習モデルテーブルを選択する指針である。例えば、モデル選択政策によって、学習モデル管理モジュール130が複数の学習モデルテーブルの機能のうち、前記クエリー機能と類似した学習モデルテーブルを選択させうる。また、モデル選択政策によって、学習モデル管理モジュール130が前記クエリー機能と類似し、前記クエリーと関連したデータセットテーブルと類似したデータ構造を有する学習モデルテーブルを選択させうる。
【0045】
学習モデルの主要技術は、バイナリ分類、多重分類、回帰分析、数値予測、時系列予測、感情分析、クラスタリング、異常探知、資源縮小、強化学習などがある。モデル選択政策によって、学習モデル管理モジュール130は、クエリーの機能に合う技術を有する学習モデルテーブルを選択することができる。
学習モデル管理モジュール130は、既存に学習した学習モデルテーブルを選択することができる。この場合、学習モデル管理モジュール130は、既存の学習モデルが正しく作動するかを検証及びテストを行って、正しく作動すれば、ディープラーニング訓練結果で既存の学習モデルテーブルを算出することができる。検証及びテスト結果、正しく作動しないか、入力データのフォーマットや個数が異なる場合、選択した学習モデルテーブルを新たにディープラーニング訓練して学習された学習モデルテーブルを算出することができる。
【0046】
図4を参照すれば、学習モデルテーブルは、ネットワークテーブル(qml_network_t)を備えることができる。アーキテクチャーは、データベースで関係型データ形式であるネットワークテーブル(qml_network_t)フォーマットに変換されて保存することができる。ネットワークテーブル(qml_network_t)は、学習モデル230のアーキテクチャーに変換される。これは、変換部360によって変換される。
【0047】
ネットワークテーブルは、複数のサブネットワークテーブル(qml_s_network_t)を備えることができる。例えば、Multi GPU(N個)でネットワークモデルを学習する場合に、N個のサブネットワークテーブルが備えられうる。ネットワークモデルを推論する場合に、1個のサブネットワークテーブルが備えられうる。
ネットワークテーブルまたはサブネットワークテーブルは、ネットワークを構成するレイヤに関する複数のレイヤテーブル(qml_layer_t)を備えることができる。学習モデル230のアーキテクチャーの構造を構成するレイヤは、レイヤテーブル(qml_layer_t)に変換されて保存することができる。レイヤテーブル(qml_layer_t)は、学習モデル230のレイヤに変換される。
【0048】
レイヤテーブル(qml_layer_t)は、複数のテンソル(tensor)テーブル(qml_tensor_t)を備えることができる。テンソルテーブルは、NCHWフォーマットで構成された4次元テンソルである。テンソルテーブルは、dtype、qml_shape_t、data、nameなどが備えられうる。テンソルテーブル及び学習モデル230のテンソルは、互いに変換される。
学習モデル230のパラメータは、パラメータテーブルで保存することができる。学習モデル230のパラメータとパラメータテーブルは、互いに変換される。これは、変換部360によって変換される。
【0049】
本発明であらかじめ設計されたDBスキーマによってモデルアーキテクチャーとモデルウエートなどがDBテーブルに保存することができる。既設計されたDBスキーマは、互いに類似したデータセットテーブルと学習モデルテーブルとを容易に分類することができる。これは、DBサーバ10が新たなデータセットを入力されれば、保存されている関係型データ形式の学習モデルのうち、類似した学習モデルを呼び出して新たなデータセットに適用させる。
例えば、「属性(attribute)、ドメイン(domain)、次数(degree)、タブル(tuple)、カーディナリティ(cardinality)、リレーション(realtion)、キー(key)、候補キー(candidate key)、基本キー(primary)」などのテーブルの構成要素の外形である次数、内容である属性及びドメインなどの類似度によって入力されたデータセットと既保存の学習モデルの類似度を定めることができる。このような類似度の判断は、学習モデル管理モジュール130が行い。
【0050】
これは、最初の関係型データ形式の学習モデルが生成され、使われてデータベースに保存された後、類似した形式のデータセットが入力されて関係型データ形式の学習モデルを生成しなければならない場合、データベースに保存されている既存の関係型データ形式のモデルのうち、類似度が高いモデルを検索して、それを呼び出した後、適用することができる。これにより、適した学習モデルの生成時間を短縮し、コンピューティング資源を効率的に使用することができる。
学習モデルテーブルは、構成要素が関係型データ形式で連結されて、学習モデルテーブルは、ユーザまたは管理者が作業遂行時に、構成要素が漏れないようにガイドの役割を行える。
【0051】
フレームワーク部300は、データベース構造のテーブルで保存された要素はそのまま利用するか、フレームワーク部300で使用するのに適するように操作した後、使用することができる。このような操作は、フレームワーク部300または変換部360で行われる。
結果管理モジュール160は、機械学習が進行する間に発生する各レイヤのアウトプット、中間出力値、パラメータ値、計算が進行するモデルの評価指標値(ディープラーニング関数の学習損失値)、及び機械推論結果値などの学習結果260をデータベースに保存するか、呼び出してユーザが確認できるように管理することができる。
【0052】
保存部200は、データセット220テーブル、学習モデル230テーブル、及び学習結果260テーブルの以外にプロジェクトテーブル(Project Table)、作業テーブル(Job Table)、及び共通テーブル(Common Table)をさらに備えることができる。
【0053】
作業テーブルは、ユーザ情報、プロジェクトの状態、ログなどを含みうる。共通テーブルは、レイヤタイプ、エラーコードなどルックアップテーブルを含みうる。
プロジェクトテーブルは、学習モデルテーブルからコピーされた実際学習モデルや推論を進行するプロジェクト情報が保存することができる。プロジェクトが生成された後、学習モデルテーブルと別個の構成を有するので、プロジェクトに使われた基盤ネットワークが修正されるにしても、既構築された学習モデルに影響がない。
【0054】
保存部200は、個数が多く、可変的なデータ(入出力データ及び加重値情報)は、BLOB(Binary Large Object)またはテキストタイプで保存することができる。保存部200は、個数が少なく、可変的なデータ(各レイヤパラメータなど)は、レコードを分割して保存することができる。
制御部100は、機械学習(訓練)及び機械推論に使われたあらゆる入出力データを保存させ、機械学習及び機械推論に使われたモデルを保存させうる。制御部100は、ユーザのクエリー要請に対応するプロシージャ(procedure)を提供して、ユーザ要請による機械学習を行うことができる。
【0055】
プロシージャは、インサートネットワーク(Insert Network)、インサートレイヤ(Insert Layer)、メイクプロジェクト(Make Project)、入力データローダ(Input Data Loader)、ネットワーク初期化(Init Network)、トレイン(Train)、モデル保存(Save Model)及びテスト(Test)を含みうる。
インサートネットワークは、ネットワーク(アーキテクチャー)名称、ネットワークタイプ、データセット名称、オプティマイザタイプ、オプティマイザパラメータ、学習率、配置サイズ、学習回数、出力レイヤインデックスを含むネットワークテーブルを生成することができる。インサートレイヤは、ネットワークID、レイヤ名称、レイヤタイプ、レイヤインデックス、レイヤパラメータ、入力レイヤインデックスを含むレイヤテーブルを登録することができる。
【0056】
メイクプロジェクトは、プロジェクト名称、データセット名称、ネットワーク名称、学習または推論フラッグ、GPU個数を含むプロジェクトを生成することができる。
入力データローダは、ユーザ入力の選択(レイヤインデックス、クエリータイプ(学習テーブル、学習データ、検証テーブル、検証データ)によってデータを入力することができる。
ネットワーク初期化は、ネットワークモデルを構成することができる。
トレインは、プロジェクトID、学習世帯数、配置サイズ、引き続き、学習有無、保存間隔、検証間隔、GPU同期化間隔を含む学習を開始できる。
モデル保存は、プロジェクトテーブルのネットワーク情報をネットワークテーブルでコピー(プロジェクト名称、ネットワーク名称)することができる。
テストは、プロジェクトID、あらゆるレイヤの結果保存有無フラッグを含む推論を開始できる。
【0057】
フレームワーク部300は、多様な機械学習フレームワークまたはディープラーニングフレームワークを用いて機械学習を行うことができる。フレームワークは、応用プログラムを開発するための多様なライブラリーやモジュールなどを効率的に使用できるように1つに縛っておいた一種のパッケージである。開発者または管理者は、既に検証された多様なライブラリーと事前学習が完了した多様なディープラーニングアルゴリズムをフレームワークを通じて迅速かつ容易に使用することができる。ディープラーニングフレームワークは、TensoFlow、Torch/PyTorch、Deeplearing4j、CNTK(MICROSOFT COGNITIVE TOOLKIT)、Keras、ONNX(Open Neural Network Exchange)、MXNet、Caffe、QML(Quantum Machine Learning)などがある。
【0058】
フレームワーク部300は、DBサーバ10にプラグインで設けられたディープラーニングフレームワークである。これは、データベース連動フレームワーク(ディープラーニングフレームワーク)、データベース応用フレームワーク(ディープラーニングフレームワーク)のように表現される。
フレームワーク部300は、DBサーバ10の制御部100の呼び出しで実行可能である。フレームワーク部300は、呼び出される時、制御部100から各種のデータを因子として受けて遂行結果を返還することができる。フレームワーク部300は、関係型データフォーマットで定義されたネットワークモデルを解析してフレームワーク内部にネットワークを構成することができる。このような解析は、変換部360で実行することもある。
【0059】
フレームワーク部300は、制御部100から学習パラメータと学習データとを因子で受けてフレームワーク内部に構成されたネットワークの学習を行い、学習結果を返還することができる。フレームワーク部300は、制御部100から入力データを因子で受けてフレームワーク内部に構成されたネットワークを用いて機械推論を行い、結果を返還することができる。
フレームワーク部300は、クエリーを入力されれば、DBサーバ10に保存された学習モデルに対する確認、修正、及び新たな学習のための学習モデルを生成することができる。フレームワーク部300は、入力されたクエリーによって情報またはデータと学習モデルとを選択し、学習パラメータを設定して機械学習ができる。フレームワーク部300は、学習中間結果及び最終結果を提供することができる。フレームワーク部300は、入力されたクエリーを通じてデータと既学習された学習ネットワークモデルとを選択して機械推論を実行し、その推論結果を提供することができる。
【0060】
本実施形態において、フレームワーク部300は、内部フレームワークでQMLモジュール310を備えることができる。内部フレームワークは、QMLモジュール310の以外に他のフレームワークを備えるか、さらに備えることができる。これは、ユーザに使用しようとする多様な選択肢を提供することができる。
QMLモジュール310は、QMLプラグイン機能を具現することができる。QMLモジュール310は、ディープラーニングを行うことができるフレームワークであるQMLを搭載することができる。QMLモジュール310は、データベースとUDF(User Defined Function)とを通じて連結され、呼び出しによって実行可能である。
【0061】
フレームワークに定義された関数は、それぞれUDFを通じてデータベースに登録され、該登録されたUDF呼び出しを通じてフレームワークが実行可能である。UDFで使用することができる因子変数のタイプは、integer、real number、stringで定められている。このような変数は、QMLでそれぞれ使われる。例えば、整数(integer)タイプは、ネットワークモデルを構成する必須パラメータのうち、整数値、QML内部に定義された構造体メモリのアドレス値などに用いられる。Real numberタイプは、ネットワークモデルを構成する必須パラメータのうち、実数値などに用いられ、stringタイプは、個数が可変的なパラメータとバイナリデータであるblobデータに用いられる。
【0062】
QMLフレームワークは、チャネル優先データフォーマットであるNCHW(N:batch、C:channel、H:height、W:width)フォーマットに従える。レイヤの種類は、ONNXで使われるレイヤを支援し、各レイヤに定義されたパラメータも、ONNXフォーマットに従える。
QMLフレームワークは、ネットワークモデルを学習可能になるようにバックプロパゲーション(Back-Propagation)アルゴリズムを搭載することができる。QMLフレームワークは、グラジエント計算アルゴリズムとモデルパラメータ(weight、bias)をアップデートさせるためのオプティマゼーションアルゴリズムとを搭載することができる。
QMLモジュール310は、ネットワークモデル(アーキテクチャー)を学習する方式のうち、ネットワークモデルを初めから学習させた後、各レイヤの加重値によって初期化アルゴリズムを通じて決定するTrain from scratch技法と既学習されたモデルの加重値(import機能を通じてデータベースに保存されるか、以前学習試みを通じて求めた加重値)を読み取ってレイヤの初期加重値を設定し、学習を進行するFine tuning技法とを支援することができる。
QMLモジュール310は、データベース(DBサーバ10、サーバの制御部100または保存部200を意味し、以下、同一)から受けた情報を通じて学習及び推論を行うことができる。データベースから受けた情報は、ユーザクエリー質疑を通じて受けたデータ組み合わせを通じて獲得することができる。
【0063】
変換部360は、特定学習モデルを他の形式の学習モデルに変換することができる。具体的に、変換部360は、特定学習モデルをデータベースの関係型データ形式に変換することができる。変換部360は、関係型データ形式の学習モデルを特定学習モデルや他の学習モデルに変換することができる。例えば、変換部360は、データベースにテーブルタイプで保存された学習モデルテーブルを内部フレームワークであるQMLフレームワークに変換するか、その逆でも可能である。変換部360は、学習モデル230のアーキテクチャー、レイヤ、及びパラメータを関係型データ形式であるネットワークテーブル、レイヤテーブル、及びパラメータテーブルに変換するか、逆変換することができる。
【0064】
図6を参照すれば、変換部360は、QML学習モデルテーブルをQMLモジュール310に適した学習モデルに変換することができる。変換部360は、必要に応じてデータセットテーブルをQMLモジュール310で使用するのに適するように変換することができる。QMLモジュール310(または、フレームワーク部300)は、データセットと変換されたQML学習モデルとを用いて学習及び/または推論を行って、学習結果を出力することができる。変換部360は、QMLモジュール310で出力した学習結果を関係型データ形式に変換して学習結果(output)テーブルで保存することができる。このような機能は、QMLモジュール310及び/またはデータセット管理モジュール120のうち少なくとも何れか1つがその代りに行うか、互いに分担して行うことができる。
変換部360は、外部フレームワークとの互換性のために使われる。変換部360は、既存のフレームワークの既学習されたモデルを持って来るか、データベースで情報またはデータを外部に送り出す時、ONNX(Open Neural Network Exchange)モデルフォーマットなどの他のフレームワークフォーマットに変換することができる。
【0065】
図7を参照すれば、変換部360は、ONNXモデルフォーマットに定義された網構造(network structure)及びモデルデータ(model data)をデータベースのネットワークモデルフォーマットに変換(インポート;import)することができる。変換部360は、逆にデータベースのネットワークモデルをONNXモデルを含む構造化されたフォーマットやCSVファイルに変換(エクスポート;export)することができる。
【0066】
変換部360は、ONNXモデルフォーマットの以外にOpen Network Exchange(ONNX)、Neural Network Exchange Format(NNEF)及びハイパーパラメータと学習パラメータファイルを構造化されたフォーマットに変換することができる。
ユーザは、変換されたONNXモデル及び構造化されたフォーマットをユーザが所望するターゲットフレームワークに変換して使用することができる。
変換部360を通じたコンバーティング作業を通じて他の形態のディープラーニングフレームワークにネットワークモデルを適用することができる。これを通じて、DBサーバ10は、データベースに保存されている関係型データ形式のモデルを呼び出して、これと類似した形態のデータセットに適用することができる。変換部360は、このような変換作業を通じて、作業に必要な時間を最小化することができる。
【0067】
図8は、本発明の実施形態によるクエリー基盤の機械学習技術の遂行流れを示すフローチャートである。
図8を参照すれば、本発明の実施形態によるクエリー基盤の機械学習技術は、ONNXフォーマットまたはONNXフォーマットに変換された既学習されたモデルをコンバータを通じてQMLフォーマットに変換し、端末機20から学習または推論クエリーを入力され、データベースで情報をQMLモジュール310に伝送して、QMLモジュール310で訓練及び推論を行うことができる。そして、訓練(学習)または推論結果をデータベースに保存すれば、端末機20は、データベースに保存された結果を確認することができる。以下、具体的に説明する。
【0068】
端末機20は、学習モデルを入力(Import)するか、データベースから出力(Export)される((1))。学習モデルを入力または出力する時、変換部360を通じてデータベースのスキーマ構造に合わせて変換することができる((2))。データベースは、クエリーを解析して適切な作業を行うことができる((3))。
制御部100は、端末機20から入力されるクエリーのQMLの類型を分析し、これによる結果をQMLモジュール310に伝送しうる。より詳細に説明すれば、入力されたクエリーの言語種類を分析し、互換有無または類似した作業内訳が保存部200にあるかを把握するなどの作業を行うことができる。
制御部100は、それぞれの運用体制または機械学習フレームワーク(S/W)別に最適の性能を具現することができるプログラムを選別し、QMLモジュール310に学習及び推論を要請しても良い。例えば、制御部100は、訓練が要求されるデータセットがイメージである場合、イメージ訓練に最適の性能を発揮することができる機械学習S/Wを選別し、該選別されたS/Wに訓練を要請することができる。これと共に、制御部100は、現在訓練のために、使用中であるサーバの資源を確認して、資源の規模に合わせて訓練のためのフレームワークを適用するか、フレームワーク適用時に、構成要素の選択的適用を施行することができる。
【0069】
QMLモジュール310は、データベースでプラグインを行い、データベースから受けた情報を通じて訓練及び推論を行うことができる((4))。端末機20は、クエリーを通じてデータベースに訓練または推論を要請することができる((5))。端末機20は、データベースのテーブルを照会して学習関連情報を照会することができる((6))。学習モデルデータは、データベースにQMLスキーマで保存することができる((7))。
【0070】
図9は、本発明の実施形態によるクエリー基盤のディープラーニング方法を説明する動作フローチャートである。
図9を参照すれば、本発明の実施形態によるクエリー基盤ディープラーニングシステムは、端末機2及びDBサーバ10と連動するフレームワーク部300でクエリー基盤のディープラーニング方法を行うことができる。
【0071】
制御部100は、ユーザ端末機から学習クエリー(Call Train)または推論クエリー(Call Inference)を入力される(ステップS410)。制御部100は、クエリーを分析して、データセットと適した学習モデルをフレームワーク部300に伝送しうる。
フレームワーク部300は、学習クエリーまたは推論クエリーによってネットワーク初期化(Init Network)、ネットワーク構成(Construct Network)及びネットワーク更新(Update Network)を実行することができる(ステップS420)。
フレームワーク部300は、あらゆる層に対する初期化(Initialize all layers)が行われれば、学習(Train)または推論(Test)を実行することができる(ステップS430)。フレームワーク部300は、学習終了時まで配置データを獲得し(Get Batch Data)、反復(Iteration)して結果及びモデルを保存(Store Result & Model)することができる。フレームワーク部300は、テストを実行し、テストデータを獲得して(Get Test Data)、フィードフォワード(feedforward)し、推論結果を保存(Store Result)することができる。
フレームワーク部300は、学習または推論の終了時に、学習結果または推論結果をユーザ端末機130に提供することができる(ステップS440)。
【0072】
一方、本発明の実施形態によるクエリー基盤ディープラーニング推論システム1は、次のようにクライアント、会員、データセット、ネットワーク、学習モデル、学習実行などを管理することができる。
【0073】
[クライアント管理]
本発明の実施形態によるクエリー基盤ディープラーニング推論システム1は、ユーザ端末機130でデータセットと機械学習過程とを管理し、結果を確認するために機能を提供することができる。
[会員管理]
クエリー基盤ディープラーニング推論システム1は、会員管理を通じてデータベース110のデータ、ネットワークモデルの生成、修正権限を付与し、変更履歴を残すことすることができる。
[データセット管理]
クエリー基盤ディープラーニング推論システム1は、データセットを管理するために新たなテーブルを生成し、データを照会、修正、アップロードするための機能を提供することができる。新たなデータセットを生成する時、自動で新たなテーブルを生成し、データをアップロードすることができる。データベースのテーブルに接近してデータを照会するか、ユーザが作成したクエリーを通じてデータベースのデータを照会した結果を示すことができる。権限によってデータを修正することができる。ユーザから数値データを入力されるか、1つ以上のファイルを読み出してデータアップロードを進行することができる。学習データのラベルを作成(tagging)する機能を提供することができる。
[ネットワーク管理]
クエリー基盤ディープラーニング推論システム1は、次のようにネットワークモデルを管理するための機能を提供することができる。支援されるレイヤを追加し、レイヤパラメータを調整して新たなネットワークモデルを生成することができる。既存に作成されたネットワークモデルリストを照会することができる。既存に作成されたネットワークモデルに新たなレイヤを追加して新たなネットワークモデルを生成することができる。ネットワークモデルを視覚化して示す機能を提供することができる。
[学習モデル管理]
クエリー基盤ディープラーニング推論システム1は、次のように学習を管理するための機能を提供することができる。ネットワークモデルとデータセット、学習パラメータを調節して学習モデルを生成または修正することができる。学習済のネットワークモデルをコンバータ機能を通じて出力することができる。現在使用中であるサーバの資源を確認することができる。
[学習実行管理]
クエリー基盤ディープラーニング推論システム1は、次のように学習及び推論を行い、結果を確認するための機能を提供することができる。サーバの資源を確認することができる。学習及び推論遂行が可能であるか否かをユーザに知らせる。現在実行または待機中である学習計画リストを照会することができる。登録されたネットワークモデルとデータセット、学習パラメータを設定して学習計画を生成することができる。現在実行または待機中である学習計画の学習パラメータを確認することができる。現在実行中である学習計画の中間及び結果を確認することができる。現在実行中である学習計画を止めることすることができる。待機中である学習計画を開始できる。登録されたネットワークモデルとデータセットとを設定して推論計画を生成することができる。実行された推論計画の結果を確認することができる。
【0074】
前述したように、本発明によれば、ディープラーニングに関する専門的知識のないユーザであっても難点なしにユーザに必要な情報を提供できるようにディープラーニングフレームワークが情報データベースにプラグイン形態で連結されて、ユーザの要請クエリーによって情報データベースに保存されたデータをディープラーニング方式で学習してクエリーに対応するデータを推論可能にする、クエリー基盤ディープラーニング推論システムを実現することができる。
【0075】
図10は、本発明の他の実施形態によるデータベース連動ディープラーニング分散システムを概略的に示す構成図である。
図11は、
図10によるメインサーバ及び分散サーバのブロック構成図である。
図12は、メインサーバのデータセット及び分散サーバの訓練用データセットを図示する。
図13は、
図10のシステムの訓練方法についてのフローチャートである。
図14は、
図10のシステムの推論方法についてのフローチャートである。
図15ないし
図17は、
図13の非同期式分散サーバのそれぞれ他の実施形態による信号フローチャートである。
図18及び
図19は、
図13が同期式分散サーバの互いに異なる実施形態による信号フローチャートである。
図20は、
図14の分散推論による信号フローチャートである。
図21は、学習モデルを概略的に図示する。
図22は、
図20による中間結果値テーブルの一部を図示する。
図23は、ネットワークテーブルの一部を図示する。
図1ないし
図9を参考にする。
【0076】
以下、説明の便宜上、次のように学習モデルを定義する。学習モデル(学習ネットワークモデル)は、アーキテクチャー(モデルアーキテクチャー)と、これに割り当てられた学習パラメータによって具現可能である。アーキテクチャーは、アーキテクチャー構造、及びこれに割り当てられたハイパーパラメータによって構築される。学習モデルと学習モデルテーブル、アーキテクチャーとアーキテクチャーテーブル、アーキテクチャー構造とネットワークテーブル、ハイパーパラメータとハイパーパラメータテーブル、及び学習パラメータと学習パラメータテーブルは、それぞれ互いに対応しうる。そして、学習モデルテーブルは、アーキテクチャーテーブル及び学習パラメータテーブルを備えることができる。アーキテクチャーテーブルは、ネットワークテーブル及びハイパーパラメータテーブルを備えることができる。アーキテクチャー構造は、レイヤの数、ユニットの数、レイヤの種類、ユニットが連結される方法を意味する。
【0077】
ユニットは、ノードとも称することができる。最初のノードに入る値は、入力データセットテーブルである。最後のノードに入る値は、出力値である。中間レイヤ(隠れ層)のノードに入力される入力値及び出力値は、データセット管理モジュール120または別途のモジュールによって管理及び保存することができる。
フレームワーク部または内部フレームワーク(以下、「フレームワーク部」)は、選択された学習モデルテーブルのアーキテクチャーテーブル(ネットワークテーブル及びハイパーパラメータテーブル)に基づいてモデルアーキテクチャーを構築し、学習パラメータテーブルに基づいて学習パラメータを前記モデルアーキテクチャーに割り当てて、前記選択された学習モデルテーブルと対応する学習モデルを生成することができる。フレームワーク部は、生成された学習モデルを用いて訓練用または推論用データセットテーブルを入力でディープラーニング訓練または推論を行うことができる。学習モデルテーブルと学習モデルは、互いに連動するか、対応関係、変換関係などで記述され、このような用語に限定されるものではない。
【0078】
図10を参照すれば、本発明の一実施形態によるデータベース連動ディープラーニング分散システム(以下、「訓練分散システム」)は、クエリー基盤ディープラーニングフレームワーク応用データベースサーバ(以下、「メインサーバ」)40、及び複数の分散サーバ41~43を含みうる。
メインサーバ40と複数の分散サーバ41~43は、
図1ないし
図9のDBサーバ10の機能を少なくとも一部を備えることができる。メインサーバ40と複数の分散サーバ41~43との構成要素のうち、DBサーバ10の構成要素と対応する構成要素についての説明は、前述した内容を参考にする。
メインサーバ40と複数の分散サーバ41~43は、ネットワークで連結されて互いに通信ができる。メインサーバ40は、複数の分散サーバ41~43を管理して、ディープラーニング学習を分散して訓練することができる。
図11の(a)を参照すれば、メインサーバ40は、制御部100、保存部200、及び入出力部370を含みうる。メインサーバ40は、変換部360をさらに含みうる。メインサーバ40は、フレームワーク部300をさらに含みうる。
【0079】
図11の(b)を参照すれば、分散サーバ41~43は、制御部100-N、保存部200-N、フレームワーク部300-N、及び入出力部370-Nを含みうる。分散サーバ41~43は、変換部360-Nをさらに含みうる。Nは、自然数であって、複数の分散サーバ41~43のうち、特定分散サーバを他の分散サーバと区別するために使われた。
メインサーバ40及び分散サーバ41~43の各構成要素は、
図1ないし
図9で記述した内容を参考にする。
メインサーバ40は、
図1ないし
図9のデータベースサーバ10の機能を具現し、分散機能をさらに具現することができる。例えば、メインサーバ40は、全体分散システムの管理機能を行い、さらに分散機能を行うことができる。但し、説明の便宜上、メインサーバ40の分散機能は、何れか1つの分散サーバで行うと扱う。
【0080】
図10に示されたメインサーバのメインフレームワーク部50、及び各分散サーバの第1ないし第3フレームワーク部51~53は、前述したフレームワーク部300にそれぞれ対応するものであって、区別の目的で使われた。
複数の分散サーバのうち何れか1つは、複数のコンピュータシステムで具現可能である。
メインサーバ40は、複数の分散サーバ41~43のそれぞれが同じ環境でディープラーニング訓練を行うように複数の分散サーバ41~43を設定することができる。メインサーバ40は、複数の分散サーバ41~43がデータセット、学習モデル、フレームワークのうち少なくとも一部を同一にできる。
【0081】
第1ないし第3分散サーバ41~43は、それぞれ第1ないし第3フレームワーク部51~53を備えることができる。第1ないし第3フレームワーク部51~53は、訓練するフレームワーク(QMLモジュール)を備え、同じ学習モデルで機械学習ができる。第1ないし第3分散サーバ41~43が備えるそれぞれの学習モデルが同一であるという意味は、少なくともそれぞれのアーキテクチャーが同一であるということを意味する。各分散サーバ41~42の学習パラメータ(p1、p2、p3)は異なる。
【0082】
各分散サーバ41~42は、それぞれ学習パラメータを初期化して互いに異なる初期学習パラメータを備えることができる。または、メインサーバ40によって、複数の分散サーバ41~43は、同じ初期学習パラメータを備えることができる。すなわち、学習パラメータの初期値は、メインサーバ40によって決定されるか、複数の分散サーバ41~43のそれぞれで独立して決定される。初期値の決定は、選択的であるか、データセットの種類、個数などの性格や、ディープラーニングする目的など多様な要素によって決定される。
第1ないし第3分散サーバ41~43は、メインサーバ40に備えられたデータセットと同じデータセットを備えることができる。同じデータセットは、メインサーバ40で複数の分散サーバ41~43にデータを伝送するか、メインサーバ40と複数の分散サーバ41~43との特定データがミラーリングのように同期化方法によって行われうる。このようなデータ移動(拡散)方式は、データセットだけではなく、他の資料(学習パラメータなど)も該当しうる。
【0083】
複数の分散サーバ41~43のそれぞれのデータセットは、学習に適するように学習用データセット(DS)に変換される。メインサーバ40でデータセットをそれぞれの複数の分散サーバ41~43に合わせてそれぞれの学習用データセット(DS)で設けて伝送するものよりも伝送効率がさらに良い。ブロードキャスティングで伝送することができるためである。
複数の分散サーバ41~43は、
図12の(a)のデータセットと同じデータセットを受信した後、各データをそれをランダムに順序を変更するシャッフルした後、配置サイズに合わせてデータをミニ配置(b1~b10)に分割して、
図12の(b-1)~(b-3)のように学習用データセット(DS)に変換することができる。配置サイズは、メインサーバ40から受信することができる。
【0084】
フレームワーク部300は、前述したQMLモジュール310の以外に統合部320をさらに備えることができる。統合部320は、分散処理される学習過程中に導出された学習パラメータを1つの学習パラメータで統合することができる。統合部320が統合に使用する関数は、多様である。例えば、統合関数は、導出された複数の学習パラメータのそれぞれに加重値を乗算した後、これらの平均を出力とすることができる。
統合部320は、当該分散サーバから導出された学習パラメータと他の分散サーバから共有された学習パラメータとのうち、如何なる学習パラメータを統合関数(F)の引数に適用するに当って、多様な引数政策(または、「統合政策」)を定めることができる。オプションである場合、ユーザの設定によって選択されうる。
【0085】
統合政策の例は、次の通りである。
統合部320は、最新の学習パラメータを統合関数(F)の引数として利用できる。すなわち、一回用いられた学習パラメータは、新たに共有されなければ、統合関数(F)の引数として使われることができない。統合部320は、他分散サーバから学習パラメータを受けることができなかった場合、他学習パラメータなしに統合関数(F)を実行することができる。統合部320は、自身の学習パラメータのみ統合関数(F)の引数である場合、統合関数(F)を実行しないこともある。この場合、現段階の配置学習から導出された学習パラメータは、そのまま次の段階の配置学習で学習パラメータとして用いられる。
【0086】
統合部320は、引数の個数に該当するあらゆる学習パラメータが最新である場合のみに統合関数(F)を実行するもの、及び他学習パラメータのうち少なくとも1つの学習パラメータが最新である場合にも、統合関数(F)を実行するもののうち何れか1つである。引数が3個であると仮定すれば、前者で3個の学習パラメータがいずれも最新である場合に、3個の学習パラメータが引数として用いられ、そうではない場合、自身の学習パラメータのみを引数として用いられる。後者で2個の学習パラメータのみ最新であれば、当該2個の学習パラメータのみ引数として用いられる。ユーザは、統合関数(F)の引数を全部である場合のみに実行されるか、一部である場合にも、実行されるもののうち何れか1つを設定することができる。
【0087】
以下、分散環境でのディープラーニングを具体的に説明する。
第1ないし第3フレームワーク部51~53は、同じアーキテクチャー構造とハイパーパラメータで学習モデルアーキテクチャーを生成して、それぞれの学習用データセット(DS)を用いて機械学習を行う準備ができる。第1ないし第3フレームワーク部51~53は、学習モデルうち、ウエートやバイアスのような学習パラメータ(p1、p2、p3)の初期値をそれぞれ設定することができる。
【0088】
ディープラーニング訓練準備が完了すれば、複数のフレームワーク部51~53のそれぞれは、ディープラーニング訓練を行うことができる。複数のフレームワーク部51~53のそれぞれは、それぞれの学習用データセット(DS)を用いてディープラーニング訓練を繰り返すことすることができる。複数のフレームワーク部51~53のそれぞれは、ミニ配置(b1~b10)別に訓練した後、パラメータ、特に、学習パラメータをアップデート(導出)することができる。本明細書の全般において、各ミニ配置の学習または訓練を配置学習または配置訓練であると称する。
例えば、第1フレームワーク部51は、初期学習パラメータ(p1-1)と第1ミニ配置(b1)を用いて訓練してアップデート(変換)された学習パラメータ(p1-1’)とを導出することができる。導出された学習パラメータ(p1-1’)は、第2ないし第3分散サーバ42、43に伝送されるか、同期化するなど拡散される。
【0089】
各フレームワーク部から導出された学習パラメータは、多様な方式で拡散(または、「共有」)される。これは、政策またはユーザ設定によって変わりうる。例えば、あるフレームワーク部で毎配置学習が終了すれば、当該最新学習パラメータが他のフレームワーク部に拡散される即時共有政策、一定時間が経過されれば、最新学習パラメータが他のフレームワーク部に拡散される時間周期別共有政策、一定個数の配置学習が終了すれば、最新学習パラメータが拡散される学習周期別共有政策、メインサーバ40で定めた規則またはランダムな下げる指示によって拡散されるその他の規則政策などがある。
第1フレームワーク部51の統合部320は、第1フレームワーク部51の導出された第1学習パラメータ(p1-1’)の以外に第2及び第3フレームワーク部52、53から導出された第2及び第3学習パラメータを1つの学習パラメータ(p1-2)で統合することができる。第1フレームワーク部51の統合部320は、第1フレームワーク部51から算出された第1学習パラメータ(p1-1’)に加重値を与えるなどの方法で、算出された第1学習パラメータ(p1-1’)が統合関数の出力にさらに多様な影響を及ぼすようにすることが望ましい。
【0090】
第1フレームワーク部51は、学習モデルの学習パラメータを統合された学習パラメータ(p1-2)にアップデートした後、第2ミニ配置(b2)と統合された学習パラメータ(p1-2)を用いて機械学習ができる。1回のエポック(epoch)、すなわち、あらゆるミニ配置(学習用データセット(DS))に対する学習が完了すれば、定められたエポック回数または既定の政策による条件を満足するまで第1フレームワーク部51は学習を繰り返すことすることができる。1回のエポックの間に、全体データ大きさを配置サイズで割った個数ほどの学習パラメータのアップデート(イテレーション(iteration))が行われうる。
図12の(b-1~3)を参照すれば、データ大きさは80であり、配置サイズは8なので、1回のエポックの間に、10回のイテレーションが発生する。
第1フレームワーク部51は、1回のエポックが終了すれば、学習用データセット(DS)をシャッフルさせうる。
【0091】
第1フレームワーク部51は、ディープラーニング訓練の下位過程が終了すれば、アーキテクチャーの構造やハイパーパラメータをチューニングすることができる。学習用データセットは、訓練(train)データセット、検証(validation)データセット、及びテストデータセットに区分される。ディープラーニング訓練の下位過程の例として、前記区分されたデータセットの学習過程(訓練、検証、テスト)などがある。
第1フレームワーク部51でチューニングされたハイパーパラメータは、他の分散サーバに拡散される。他の分散サーバは、チューニングされたハイパーパラメータで学習モデルアーキテクチャーを再構築することができる。ハイパーパラメータのチューニングは、1つの分散サーバのみで行うことが望ましい。
【0092】
新たにディープラーニング訓練の次の下位過程が始まる前に、それぞれの学習パラメータは、初期化など再調整されるか、直前値が保持される。
図13を参照すれば、メインサーバ40は、ユーザから特定機能のディープラーニング学習クエリーを入力される(ステップS610)。メインサーバ40は、クエリーを入出力部370を通じて直接入力されるか、端末機20を通じて入力される。
メインサーバ40は、学習クエリーに適した学習モデルテーブルを選択することができる(ステップS620)。メインサーバ40は、クエリーを分析して適した学習モデルテーブル(以下、「学習用モデルテーブル(Tt)」)を複数の学習モデルテーブルから選択することができる。学習用モデルテーブルは、前述したモデル選択政策によってメインサーバ40の学習モデル管理モジュール130によって選択されうる。学習用モデルテーブル(Tt)は、変換部360によって、外部フレームワークから生成された学習モデルがインポート(import)されたものである。
【0093】
メインサーバ40は、学習用データセットテーブルを備えることができる。メインサーバ40は、学習用データセットのデータをクエリーを通じて入力されるか、他の装置から入力される。
メインサーバ40は、複数の分散サーバ41~43を初期化稼動させうる(ステップS630)。初期化稼動は、ディープラーニング訓練の分散が適するように分散環境を設定し、複数の分散サーバ41~43で分散訓練が可能になるように準備する一連の過程を意味する。初期化稼動は、使用可能な複数の分散サーバ41~43のうち、適切な分散サーバを選択することを含みうる。初期化稼動は、第1ないし第3分散サーバ41~43とネットワーク連結し、同期化、非同期化、及び/またはミラーリングなどでデータを第1ないし第3分散サーバ41~43に拡散させうる。
【0094】
分散環境は、学習用データセット(DS)の配置サイズを備えることができる。メインサーバ40は、分散サーバの個数、分散サーバの仕様、学習用データセット(DS)、及び/またはクエリーに基づいて、適切な配置サイズを決定することができる。
分散環境は、適切なエポック回数をさらに備えることができる。分散環境は、学習クエリーをさらに備えることができる。分散環境に備えられた学習クエリーは、分析された内容、例えば、クエリー機能である。
【0095】
メインサーバ40は、分散環境、学習用モデルテーブル(Tt)、及び/または学習用データセット(DS)テーブルを第1ないし第3分散サーバ41~43に拡散することができる。分散環境は、関係型データ構造である。分散環境は、学習用モデルテーブルに属する。
データ拡散後、第1ないし第3分散サーバ41~43は、同じ分散環境、学習用モデルテーブル(Tt)、及び学習用データセット(DS)テーブルを備えることができる。
第1ないし第3分散サーバ41~43のそれぞれは、それぞれの学習用データセット(DS)テーブルを学習に合わせて変更することができる。例えば、第1分散サーバ41は、学習用データセット(DS)のデータをランダムに順序を変更した後、配置サイズに合わせて分割することができる。シャッフル及び分割されたデータセットは、配置テイトセッテーブルで保存することができる。配置データセットテーブルのそれぞれの配置サイズに分割されたデータセットを「配置データ」または「ミニ配置」と称することができる。
【0096】
第1ないし第3分散サーバ41~43は、それぞれの学習パラメータテーブルの初期値を互いに異なるようにすることが望ましい。多様な学習パラメータでディープラーニング訓練を行うことができるためである。このために、第1ないし第3分散サーバ41~43は、学習パラメータの初期値をランダムに定めることができる。学習パラメータの初期化は、多様な初期化技術が用いられる。
【0097】
初期化稼動された第1ないし第3分散サーバ41~43のそれぞれは、前記適した学習モデルテーブルに属したアーキテクチャーテーブルをプラグインで設けられた第1ないし第3フレームワーク部51~53に適するようにモデルアーキテクチャーを構築することができる(ステップS640)。
第1ないし第3フレームワーク部51~53は、それぞれ構築されたモデルアーキテクチャーに初期学習パラメータを割り当て(ステップS650)て、学習モデルを訓練する準備ができる。
第1ないし第3フレームワーク部51~53(例えば、それぞれのQMLモジュール310)は、学習用ミニ配置と学習パラメータが割り当てられたモデルアーキテクチャーとを用いて訓練することができる(ステップS660)。
【0098】
各分散サーバからアップデートされたそれぞれの学習パラメータの統合のために、各分散サーバで独立して配置学習する非同期式学習方法と周期的に配置学習の開始を共にする同期式学習方法とがある。
コンピューティング資源や仕様などによって分散サーバの各配置学習に必要な時間が異なるしかない。
【0099】
非同期式学習方法は、他の分散サーバでの配置学習時間と無関係に休止時間なしに継続的な配置学習が可能であって、コンピューティング資源を効率的に使用することができる。また、分散サーバのうち何れか1つが機械学習を最終的に終了すれば、残りの分散サーバも終了させる政策を利用すれば、総学習時間を非同期式方法に比べてさらに減らしうる。
同期式学習方法は、各分散サーバで同じ回数の配置学習後、アップデートされた最終学習パラメータを互いに共有するので、分散学習の程度や効率が非同期式に比べてさらに良い。
ユーザは、機械学習の種類や対象などによって同期式及び非同期式学習方法のうち何れか1つを選択することができる。以下、同期式及び非同期式学習方法について具体的に説明する。
【0100】
図15を参照して、非同期式学習方法の一実施形態を叙述する。
図15は、前述した「拡散政策」のうち、各フレームワーク部で毎配置学習が終了すれば、当該最新学習パラメータが他のフレームワーク部に拡散される即時共有政策による実施形態である。統合政策は、少なくとも1つの他学習パラメータが最新である場合、引数として使われる実施形態である。
第1ないし第3フレームワーク部51~53のそれぞれは、学習終了時までそれぞれの配置データ(ミニ配置(b1~b10))を獲得し(Get Batch Data)、反復学習ができる。各反復されるそれぞれの学習を「配置学習」(配置TR)と称する。
第1フレームワーク部51は、第1.1パラメータ(p1.1)が割り当てられたモデルアーキテクチャーで第1.1配置学習を進行することができる。第1.1配置学習が完了すれば、第1フレームワーク部51は、学習された第1.1’パラメータ(p1.1’)を導出することができる。
第1フレームワーク部51は、学習された第1.1’パラメータ(p1.1’)を第2及び第3分散サーバ42、43に拡散させることができる(ステップS810)。拡散は、第1分散サーバ41から残りの分散サーバ42、43に直接伝送するか、メインサーバ40を通じて同期化するか、ミラーリングすることができる。データ管理の効率及び一貫性などのために、拡散は同期化やミラーリングを通じて行われることが望ましい。本実施形態において、学習が終了した後、第1分散サーバ41の学習パラメータが第2及び第3分散サーバ42、43に拡散されたと図示したが、これに限定されるものではない。例えば、学習に最も多くの時間がかかった第3フレームワーク部53で学習が終了した後、それぞれの導出された学習パラメータ(p1.1’、p2.1’、p3.1’)が他の分散サーバ41、42、43に拡散される。
第1フレームワーク部51の統合部320は、他の分散サーバ42、43で配置学習後、導出された最新の学習パラメータ(他学習パラメータ)と第1フレームワーク部51から導出された学習パラメータとを適切な変換(F)を経て、次の配置学習で使用する学習パラメータで統合することができる。
【0101】
他学習パラメータのうち、最近終了した配置学習以前に統合部320で使われたものは除くことすることができる。すなわち、最新の学習パラメータのみ用いられる。
第1フレームワーク部51は、統合された学習パラメータを次の配置学習に適用する学習パラメータにアップデートし、次の配置学習ができる。
例えば、第1フレームワーク部51で第1.1配置学習(TR)が完了した場合、他の分散サーバ42、43から拡散された学習パラメータがないために、第1フレームワーク部51の統合部320は、第1.1’パラメータ(p1.1’)を次の学習である第1.2配置学習に使われる第1.2パラメータ(p1.2)と指定することができる。
【0102】
第1フレームワーク部51は、1.2配置学習が完了した後、導出された第1.2’パラメータ(p1.2’)を重点に第2及び第3分散サーバ42、43から拡散された第2.1’及び第3.1’パラメータと統合して、第1.3パラメータ(p1.3)を算出することができる。
統合過程で使われる関数(F)は、当該フレームワーク部から導出された学習パラメータを重点とし、残りの他パラメータを補助として統合することが望ましい。例えば、第1フレームワーク部51の統合部320は、第1.2’パラメータ(p1.2’)に高い加重値を乗算し、残りのパラメータ(p2.1’、p3.1’)に低い加重値を乗算して、第1.2パラメータ(p1.2)で導出することができる。この際、加重値の和は、1であることが望ましい。統合関数(F)の引数(学習パラメータ)の個数や学習進行程度によって、各引数に乗算される加重値のそれぞれの大きさは変わりうる。
【0103】
第1フレームワーク部51は、第1.3パラメータ(p1.3)を利用した第1.3配置学習後、第1.3’パラメータ(p1.3’)を導出することができる。第1.3配置学習後、第1フレームワーク部51は、第1.3’、第2.2’、及び第3.1’パラメータ(p1.3、p2.2、p3.1’)を最新のパラメータで備える。この際、第3.1’パラメータ(p3.1’)は、第1.2配置学習完了後、使われたパラメータでそれを除く。したがって、第1フレームワーク部51は、第1.3’及び第2.2’パラメータ(p1.3’、p2.2’)を統合して第1.4パラメータ(p1.4)で算出することができる。
【0104】
拡散された学習パラメータのうち、最新のものではなければならないことは、第2分散サーバ42の第2.4配置学習以後の統合段階でその例を見ることができる。第2.3配置学習後、第2.4配置学習終了前まで、第2フレームワーク部52は、第1.3’学習パラメータ(p1.3’)及び第1.4’学習パラメータ(p1.4’)を第1分散サーバ41から拡散される。第1.4’学習パラメータ(p1.4’)が最新なので、第2フレームワーク部52の統合部320は、第1.3’学習パラメータ(p1.3’)の代わりに、第1.4’学習パラメータ(p1.4’)を使用して統合することができる。
【0105】
本実施形態によれば、第1ないし第3分散サーバ41~43は、それぞれの配置学習及び学習パラメータの統合を非同期的に進行することができる。すなわち、第1分散サーバ41は、残りの分散サーバ42、43の配置学習の終了と無関係に次の配置学習を進行することができる。これにより、複数の分散サーバ41~43のコンピューティング資源を効率的に使用することができる。サーバの仕様や作動環境が異なって、それぞれの配置学習にかかる時間は異なるしかない。本同期式学習方法の場合、他の分散サーバの配置学習が終了することを待たなくてもよいためである。
【0106】
最終訓練された学習パラメータ(p_last)は、第1フレームワーク部51の統合部320から算出される。第1フレームワーク部51の統合部320は、第1.l’、第2.m’、及び第3.n’学習パラメータ(p1.l’、p2.m’、p3.n’)のうち少なくとも1つに基づいて統合(F’)して訓練された学習パラメータ(p_last)を算出することができる(l、m、nは、自然数)。本最終統合に使われる関数(F’)は、訓練中に使われる統合関数(F)と異なる。
最終統合関数(F’)は、各引数に差別的な加重値を与えないことが望ましい。最終統合関数(F’)は、各引数に加重値を差別するとしても、前記統合関数(F)よりも不十分に差別することが望ましい。この場合、学習が先に終了した順に高い加重値を低い加重値に与えることが望ましい。
【0107】
本実施形態のように、配置学習が最も早く終わる第1分散サーバ41から最終学習パラメータ(p_last)を導出(統合)することが望ましい。すなわち、「l」値が、他の「m」、及び「n」よりも大きな値を有する。第1フレームワーク部51の配置学習が終了(あらゆるエポック終了)すれば、第2及び第3フレームワーク部52、53の配置学習は、残ったイテレーションと無関係に終了する。この場合、同じ環境での同期式学習方法よりも時間が短縮される。
【0108】
図16を参照して、非同期式学習方法の他の実施形態を叙述する。
図16は、前述した「拡散政策」のうち、一定時間が経過されれば、最終アップデートされた学習パラメータが他のフレームワーク部に拡散される時間周期別共有政策による実施形態である。統合政策は、あらゆる学習パラメータが最新である場合、引数として使われる実施形態である。
図15を参照する。
第1ないし第3フレームワーク部51~53のそれぞれは、学習終了時までそれぞれの配置データ(ミニ配置(b1~b10))を獲得し、配置学習(配置TR)を繰り返すことすることができる。
第1フレームワーク部51は、第1.1パラメータ(p1.1)が割り当てられたモデルアーキテクチャーで第1.1配置学習を進行することができる。第1.1配置学習が完了すれば、第1フレームワーク部51は、学習された第1.1’パラメータ(p1.1’)を導出することができる。導出された第1.1’パラメータ(p1.1’)は、そのまま第1.2配置学習に使われる。すなわち、第1フレームワーク部51の統合部320は、統合関数(F)を実行しないこともある。第1.2パラメータ(p1.2)は、第1.1’パラメータ(p1.1’)と同じ値を有する。
【0109】
このように、各分散サーバ(DS1~3)は、学習パラメータが拡散される前まで独立して配置学習を進行することができる。
あらゆるフレームワーク部51~53は、特定周期またはメインサーバ40で指示する特定時刻に最新の学習パラメータを拡散させることができる(ステップS820)。本実施形態において、第1フレームワーク部51は、第1.3’学習パラメータ(p1.3’)を、第2フレームワーク部52は、第2.2’学習パラメータ(p2.2’)を、及び第3フレームワーク部53は、第3.1’学習パラメータ(p3.1’)を他の分散サーバに拡散させることができる。
学習パラメータの拡散以後、各フレームワーク部は、次の配置学習前に学習パラメータを統合することができる。
【0110】
例えば、第1フレームワーク部51は、第1.3配置学習が完了した後、導出された第1.3’パラメータ(p1.3’)を重点に第2及び第3分散サーバ42、43から拡散された第2.2’及び第3.1’パラメータと統合して、第1.4パラメータ(p1.4)を算出することができる。第2フレームワーク部52は、第2.3配置学習が完了した後、導出された第2.3’パラメータ(p2.3’)を重点に第3及び第1分散サーバ43、41から拡散された第3.1’及び第1.3’パラメータと統合して、第2.4パラメータ(p2.4)を算出することができる。第3フレームワーク部53は、第3.2配置学習が完了した後、導出された第3.2’パラメータ(p3.2’)を重点に第1及び第2分散サーバ41、42から拡散された第1.3’及び第2.2’パラメータと統合して、第3.3パラメータ(p3.3)を算出することができる。
【0111】
最終訓練された学習パラメータ(p_last)は、第1フレームワーク部51の統合部320から算出される。第1フレームワーク部51の統合部320は、第1.l’、第2.m’、及び第3.n’学習パラメータ(p1.l’、p2.m’、p3.n’)に基づいて統合(F’)して訓練された学習パラメータ(p_last)を算出することができる(l、m、nは、自然数)。本最終統合に使われる関数(F’)は、訓練中に使われる統合関数(F)と異なる。
最終統合関数(F’)は、各引数に差別的な加重値を与えないことが望ましい。最終統合関数(F’)は、各引数に加重値を差別するとしても、前記統合関数(F)よりも不十分に差別することが望ましい。この場合、学習が先に終了した順に高い加重値を低い加重値に与えることが望ましい。
【0112】
本実施形態のように、配置学習が最も早く終わる第1分散サーバ41から最終学習パラメータ(p_last)を導出(統合)することが望ましい。すなわち、「l」値が、他の「m」、及び「n」よりも大きな値を有する。第1フレームワーク部51の配置学習が終了(あらゆるエポック終了)すれば、第2及び第3フレームワーク部52、53の配置学習は、残ったイテレーションと無関係に終了する。この場合、同じ環境での同期式学習方法よりも時間が短縮される。
【0113】
図17を参照して、非同期式学習方法のさらに他の実施形態を叙述する。
図17は、前述した「拡散政策」のうち、一定個数の配置学習が終了すれば、最新学習パラメータが拡散される学習周期別共有政策による実施形態である。統合政策は、あらゆる学習パラメータが最新である場合、引数として使われる実施形態である。
図15を参照する。
第1ないし第3フレームワーク部51~53のそれぞれは、学習終了時までそれぞれの配置データ(ミニ配置(b1~b10))を獲得し、配置学習(配置TR)を繰り返すことすることができる。
第1フレームワーク部51は、第1.1パラメータ(p1.1)が割り当てられたモデルアーキテクチャーで第1.1配置学習を進行することができる。第1.1配置学習が完了すれば、第1フレームワーク部51は、学習された第1.1’パラメータ(p1.1’)を導出することができる。導出された第1.1’パラメータ(p1.1’)は、そのまま第1.2配置学習に使われる。すなわち、第1フレームワーク部51の統合部320は、統合関数(F)を実行しないこともある。第1.2パラメータ(p1.2)は、第1.1’パラメータ(p1.1’)と同じ値を有する。
【0114】
このように、各分散サーバ(DS1~3)は、学習パラメータが拡散される前まで独立して配置学習を進行することができる。
フレームワーク部51~53のそれぞれは、配置学習回数の特定周期に最新の学習パラメータを拡散させることができる(ステップS830)。図面の太く表示された配置学習が終了すれば、最新学習パラメータが拡散される。
【0115】
本実施形態において、2周期の配置学習終了以後に学習パラメータが拡散されると仮定する。第1フレームワーク部51は、第1.2’学習パラメータ(p1.2’)を、第2フレームワーク部52は、第2.2’学習パラメータ(p2.2’)を、及び第3フレームワーク部53は、第3.2’学習パラメータ(p2.3’)を他の分散サーバにそれぞれ拡散させることができる。
学習パラメータの拡散以後、各フレームワーク部は、他分散サーバで最新の学習パラメータをいずれも受信した場合に学習パラメータを統合することができる。
例えば、第1フレームワーク部51は、第1.3配置学習が完了した後、導出された第1.3’パラメータ(p1.3’)を重点に第2及び第3分散サーバ42、43から拡散された第2.2’及び第3.2’パラメータと統合して、第1.4パラメータ(p1.4)を算出することができる。第1フレームワーク部51は、第1.2配置学習後に他の学習パラメータを受けることができなかった理由で、及び第1.3配置学習後に1つの他最新学習パラメータのみを保有した理由で、各配置学習以後に統合関数(F)を実行させない。
【0116】
第2フレームワーク部52は、第2.3配置学習が完了した後、導出された第2.3’パラメータ(p2.3’)を重点に第3及び第1分散サーバ43、41から拡散された第3.2’及び第1.2’パラメータと統合して、第2.4パラメータ(p2.4)を算出することができる。第3フレームワーク部53は、第3.2配置学習が完了した後、導出された第3.2’パラメータ(p3.2’)を重点に第1及び第2分散サーバ41、42から拡散された第1.2’及び第2.2’パラメータと統合して、第3.3パラメータ(p3.3)を算出することができる。
【0117】
最終訓練された学習パラメータ(p_last)は、第1フレームワーク部51の統合部320から算出される。第1フレームワーク部51の統合部320は、第1.l’、第2.m’、及び第3.n’学習パラメータ(p1.l’、p2.m’、p3.n’)に基づいて統合(F’)して訓練された学習パラメータ(p_last)を算出することができる(l、m、nは、自然数)。本最終統合に使われる関数(F’)は、訓練中に使われる統合関数(F)と異なる。
最終統合関数(F’)は、各引数に差別的な加重値を与えないことが望ましい。最終統合関数(F’)は、各引数に加重値を差別するとしても、前記統合関数(F)よりも不十分に差別することが望ましい。この場合、学習が先に終了した順に高い加重値を低い加重値に与えることが望ましい。
【0118】
本実施形態のように、配置学習が最も早く終わる第1分散サーバ41から最終学習パラメータ(p_last)を導出(統合)することが望ましい。すなわち、「l」値が、他の「m」、及び「n」よりも大きな値を有する。第1フレームワーク部51の配置学習が終了(あらゆるエポック終了)すれば、第2及び第3フレームワーク部52、53の配置学習は、残ったイテレーションと無関係に終了する。この場合、同じ環境での同期式学習方法よりも時間が短縮される。
図18を参照して、同期式学習方法の一実施形態を叙述する。
図18は、前述した「拡散政策」のうち、あるフレームワーク部で毎配置学習が終了すれば、当該最新学習パラメータが他のフレームワーク部に拡散される即時共有政策による実施形態である。統合政策は、あらゆる学習パラメータが最新である場合、引数として使われる実施形態である。
図15を参照する。
【0119】
第1ないし第3フレームワーク部51~53のそれぞれは、学習終了時までそれぞれのミニ配置(b1~b10)に対して配置学習(配置TR)ができる。
第1フレームワーク部51は、第1.1パラメータ(p1.1)が割り当てられたモデルアーキテクチャーで第1.1配置学習を進行することができる。第1.1配置学習が完了すれば、第1フレームワーク部51は、学習された第1.1’パラメータ(p1.1’)を導出することができる。
第1フレームワーク部51は、学習された第1.1’パラメータ(p1.1’)を第2及び第3分散サーバ42、43に拡散させることができる(ステップS840)。
第1フレームワーク部51は、他の分散サーバ42、43で同一段階の配置学習(第1.1配置学習)後、導出された学習パラメータ(他学習パラメータ)が第1分散サーバ41にアップデートされたか否かを判断することができる。
【0120】
第1分散サーバ41に他学習パラメータがいずれもアップデートされれば、第1フレームワーク部51の統合部320は、第1.1配置学習後、導出されたあらゆる学習パラメータ(p1.1’、p2.1’、p3.1’)を適切な統合関数(F)を用いて、次の配置学習で使用する学習パラメータ(p1.2)で統合することができる。
統合関数(F)は、当該フレームワーク部から導出された学習パラメータを重点とし、残りの他パラメータを補助として統合することが望ましい。例えば、第1フレームワーク部51の統合部320は、第1.1’パラメータ(p1.1’)に高い加重値を乗算し、残りのパラメータ(p2.1’、p3.1’)に低い加重値を乗算して、第1.2パラメータ(p1.2)で導出することができる。この際、加重値の和は、1であることが望ましい。加重値は、学習進行程度や他の多様な要素で、加重値のそれぞれの大きさは変わりうる。
【0121】
第1フレームワーク部51は、統合された学習パラメータ(p1.2)を次の配置学習に適用する学習パラメータにアップデートし、次の配置学習ができる。
第2及び第3分散サーバ42、43の第2及び第3フレームワーク部52、53のそれぞれの統合部320は、それぞれ第1.1配置学習後、導出されたあらゆる学習パラメータ(p1.1’、p2.1’、p3.1’)を用いて、第2.2及び第3.2パラメータ(p2.1、p3.1)をそれぞれ統合して、次の配置学習に適用する学習パラメータにそれぞれアップデートした後、次の配置学習ができる。
【0122】
このような過程を通じて、第1ないし第3フレームワーク部51~53は、あらゆるエポックが終了するまでテストすることができる。
あらゆるエポックが終了すれば、複数の分散サーバ41~43のうち何れか1つまたはメインサーバ40の統合部320は、それぞれの最後の学習パラメータ(p1.n’、p2.n’、p3.n’)を統合して、最終学習パラメータ(p_last)を導出することができる(nは、自然数)。最終統合関数(F’)は、学習中に使われた統合関数(F)と異なる。最終統合関数(F’)は、各引数に差別的な加重値を与えないことが望ましい。
【0123】
本同期式学習方法は、非同期式学習方法に比べて学習に時間がさらにかかるが、各学習パラメータをバランスよく使用することができる。
図19を参照して、同期式学習方法の他の実施形態を叙述する。
図19は、前述した「拡散政策」のうち、時間周期別共有政策、学習周期別共有政策、及びその他の規則政策のうち何れか1つの政策による実施形態である。統合政策は、あらゆる学習パラメータが最新である場合、引数として使われる実施形態である。
図15、
図16、及び
図18を参照する。
第1ないし第3フレームワーク部51~53のそれぞれは、学習終了時までそれぞれのミニ配置(b1~b10)に対して配置学習(配置TR)を繰り返すことすることができる。
【0124】
第1フレームワーク部51は、第1.1パラメータ(p1.1)が割り当てられたモデルアーキテクチャーで第1.1配置学習を進行することができる。第1.1配置学習が完了すれば、第1フレームワーク部51は、学習された第1.1’パラメータ(p1.1’)を導出することができる。導出された第1.1’パラメータ(p1.1’)は、そのまま第1.2配置学習に使われる。すなわち、第1フレームワーク部51の統合部320は、統合関数(F)を実行しないこともある。第1.2パラメータ(p1.2)は、第1.1’パラメータ(p1.1’)と同じ値を有する。このように、各分散サーバ(DS1~3)は、学習パラメータが拡散される前まで独立して配置学習を進行することができる。この際、各配置学習の開始は、同期しなくても構わない。
【0125】
あらゆるフレームワーク部51~53は、特定時間周期、学習周期、または特定時刻に最新の学習パラメータを拡散させることができる(ステップS820)。本実施形態において、あらゆるフレームワーク部51~53のそれぞれは、三番目の配置学習終了後に導出された第1.3’、第2.3’、及び第3.3’学習パラメータ(p1.3’、p2.3’、p3.3’)を他の分散サーバに拡散させることができる。
学習パラメータの拡散以後、各フレームワーク部は、次の配置学習前に学習パラメータを統合して、それぞれ第1.4、第2.4、及び第3.4学習パラメータ(p1.4、p2.4、p3.4)にアップデートすることができる。以後、各フレームワーク部51~53は、次の学習パラメータ拡散まで配置学習を進行することができる。
【0126】
図13を参照すれば、複数の分散サーバ41~43のうち何れか1つ、例えば、第1分散サーバ41は、訓練されたモデルアーキテクチャー及び訓練された学習パラメータ(p_last)をアーキテクチャーテーブル及び学習パラメータテーブルに変換して、それを訓練された学習モデルテーブル(推論用モデルテーブル(Ti))で保存することができる(ステップS670)。保存された資料は、メインサーバ40に伝送されるか、同期化する。
【0127】
図14を参照して、ディープラーニング推論分散について説明する。以下、
図10及び
図11を参考にする。但し、ディープラーニング推論分散システムのメインサーバ40と複数の分散サーバ41~43の環境は、ディープラーニング訓練分散システムのメインサーバ40及び複数の分散サーバ41~43の環境は異なる。メインサーバ40と複数の分散サーバ41~43は、それぞれ統合部320、320-Nを備えないこともある。メインサーバ40と複数の分散サーバ41~43は、互いに互換される。
図14を参照すれば、端末機20から学習クエリーと同じ機能のディープラーニング推論クエリーを入力される(ステップS710)。本実施形態において、メインサーバ40は、ディープラーニングすることができる第1分散サーバ41と同一であると仮定すれば、本ディープラーニング推論クエリーは、メインサーバ40が受信することができる。以下、メインサーバ40でディープラーニング推論が行われると見る。
メインサーバ40は、保存部200に推論用データセットテーブルを備えることができる。メインサーバ40は、推論用データセットのデータをクエリーを通じて入力されるか、他の装置から入力される。
【0128】
メインサーバ40は、入力された学習クエリーと同じ機能のディープラーニング推論クエリーを分析して、既学習された推論用モデルテーブル(Ti)を選択することができる(ステップS715)。推論用モデルテーブル(Ti)は、ディープラーニング推論クエリーの内容に記述されている。
メインサーバ40のメインフレームワーク部50は、推論用モデルテーブル(Ti)のアーキテクチャーテーブルをメインフレームワーク部50に適した推論用モデルアーキテクチャーで構築し、推論用モデルアーキテクチャーに学習パラメータを割り当てて推論用学習モデルを生成することができる(ステップS720)。
メインサーバ40は、推論分散が必要であるか否かを判断することができる(ステップS725)。
【0129】
推論分散は、ディープラーニングを行うための複数のタスクのうち、一部を他の装置で行うことを意味する。複数のタスクは、1つの学習モデルのための一連の過程であるか、複数の学習モデルのそれぞれのタスクの集合である。前者(1個学習モデル)の場合、複数のタスクは順次に進行しなければならないので、1つの装置で一部のタスクを行った後に、他の装置で残りのタスクを行うことができる。後者(複数学習モデル)の場合、ある学習モデルのタスクであるタスクグループ別に他の装置に行わせうる。この際、上位グループに属する学習モデルのタスクグループを先に行った後、下位グループに属する学習モデルのタスクグループを行うことができる。後者は、前者の分散概念を含みうる。本実施形態では、前者に基づいて説明するが、後者の概念が含まれるということは当然である。そして、基本的に分散処理されるタスクは、一連のタスクではなければならない。一連のタスクは、それぞれ先後関係であり、互いに直接連結されていることを意味する。例えば、一連のタスクに属するあるタスクの結果値は、一連のタスクに属する次のタスクの入力値ではなければならない。
【0130】
推論分散必要環境は、多様である。
推論分散必要環境の第1例として、メインサーバ40での一連のタスク遂行時間よりも第1分散サーバ41での一連のタスク遂行時間がさらに短い場合である。この際、推論分散環境伝送及び一連のタスクの最後の結果値を伝送する時間が考慮される。このために、メインサーバ40と第1分散サーバ41は、高速Wi-Fiや5G、6Gなどの高速移動通信網で連結されることが望ましい。メインサーバ40がモバイル装置やエンベデッド装置のようにコンピューティング仕様が低い場合、及び/または第1分散サーバ41のコンピューティング仕様が高い場合、推論分散が必要である。このような環境は、特に、エッジコンピューティング(モバイルエッジコンピューティング)環境に適する。エッジコンピューティング環境でメインサーバ40がエッジデバイスであり、第1分散サーバ41がエッジサーバである場合、分散推論が望ましい。特に、エッジコンピューティング環境の場合、エッジデバイスとエッジサーバとの通信速度が非常に速いので、本推論分散に適する。
推論分散必要環境の第2例として、コンピューティング仕様は別途に、各装置での主な性能によって変わりうる。例えば、特定タスクがメインサーバ40でより第1分散サーバ41で処理速度が速い場合、当該特定タスクは、第1分散サーバ41で分散処理されることが望ましい。
【0131】
推論分散必要環境の第3例として、全体複数のタスクのうち、分離されて処理される一連のタスクを他の分散サーバで処理させるものである。例えば、人物の性別と年齢とを分類する学習モデルの場合、これは、性別分類学習モデルと年齢分類学習モデルとに分離される。性別分類は、第1分散サーバ41で処理し、年齢分類は、第2分散サーバ42で処理させれば、ディープラーニング遂行による全体時間を減らしうる。
【0132】
推論分散必要環境の第4例として、入力データが多い場合、入力データを分割して、各分割された入力データを分散して処理させうる。本例は、他の例と組み合わせて用いられる。例えば、入力データを複雑ではないタスクで前処理する過程がある場合、メインサーバ40で前処理過程を行い、前処理過程後、後処理過程が必要なデータを他の分散サーバに伝送しうる。本例は、特に、通信環境が速くない場合、有用である。後処理ディープラーニングが必要なデータのみ分散サーバに伝送すれば良いためである。
推論分散が必要であると判断される場合、メインサーバ40は、推論用モデルテーブル(Ti)を複数の分散サーバ41~43のうち少なくとも1つに伝送しうる(ステップS730)。
メインサーバ40は、複数の分散サーバ41~43に推論用モデルテーブル(Ti)に基づいて推論用学習モデルを生成するように指示することができる。
メインサーバ40は、推論分散するタスクである推論分散範囲及び推論分散する分散サーバを備える推論分散環境を決定することができる(ステップS735)。メインサーバ40は、推論分散環境に基づいて、推論分散する分散サーバに分散処理を指示することができる(ステップS740)。分散処理指示についての詳しい説明は後述する。
推論分散が必要ないか、推論分散を指示するとしても、メインサーバ40でディープラーニング推論の一部のタスクを行う必要がある場合、メインサーバ40は、ディープラーニング推論によるタスク全体またはその一部を行うことができる(ステップS750)。メインサーバ40は、生成された推論用学習モデルを用いて、推論用データセットテーブルのデータに対してクエリー機能のディープラーニングの全体または一部を行うことができる。
メインサーバ40は、自体または他の分散サーバで完了したディープラーニング推論による推論結果を取得して、それを保存(ステップS760)するか、ユーザに知らせる。
【0133】
図20を参照すれば、メインサーバ40は、推論分散が必要であると判断すれば、第1及び第2分散サーバ41、42に推論用学習モデルテーブル(Ti)を伝送しうる(ステップS730)。
第1及び第2分散サーバ41、42は、メインサーバ40の指示によって、推論用学習モデルテーブル(Ti)を用いて推論用学習モデルを生成することができる。
図21を参照すれば、概略的な学習モデルのネットワーク構造(神経網)は、入力層(L_I)、隠匿層(L1~L_N)、及び出力層(L_O)を備えることができる。
入力層は、推論用データセットから入力される。
隠匿層は、計算が起こる層である。隠匿層(L1~L_N)は、単一または複数のレイヤで構成することができる。円状は、各ノードを示し、各レイヤは、ノードの集合で構成することができる。矢印の開始は、一ノードの出力であり、端は、一ノードの入力である。
【0134】
出力層は、ディープラーニングの結果値であって、分類しなければならない値の個数ほど出力ノードの個数を有しうる。
ディープラーニング遂行は、複数のタスクを備えることができる。すなわち、ディープラーニング遂行は、複数のタスクによって段階別に行われる。複数のタスクのそれぞれは、他のタスクと区別される固有番号を有しうる。後述する複数のレイヤのそれぞれは、他のレイヤと区別される固有番号を有しうる。
複数のタスクは、何れか1つの学習モデルに従属せず、クエリー機能を行うためのあらゆるタスクを意味する。クエリーの機能が複数の細部機能に分類されて、複数の学習モデルでディープラーニング推論が行われうる。この場合、複数のタスクは、複数の学習モデルのうち、第1学習モデルの第1タスクグループ、及び第2学習モデルの第2タスクグループをいずれも含みうる。
【0135】
図21ないし
図22を参照すれば、学習モデルの複数のレイヤのうち、特定レイヤのノードで演算されることは、1つのタスクと対応しうる。
例えば、レイヤ1(L1)の第1出力値(R1)は、レイヤ2(L2)の第2入力値になる。レイヤ2(L2)で第1出力値(R1)が演算されて第2出力値(R2)に出力される。第2入力値(R1)から第2出力値(R2)に演算される過程は、タスク2(T2)と称することができる。第2出力値は、タスク2(T2)の結果値リスト2(R2)と称することができる。結果値リストは、タスク固有番号と対応し、他の結果値リストと区別される固有番号を備えることができる。
N個のレイヤがあれば、N個のタスクがある。制御部100は、
図22の右側のように、複数のタスク(T1~T_N)の複数の結果値リスト(R1~R_N)を関係型構造の中間結果値テーブル(T_R)で保存することができる。
【0136】
図23を参照すれば、隠匿層のそれぞれのレイヤ(L1~L_N)は、ネットワークテーブル(T_NW)の行(H1~H_N)に対応しうる。したがって、複数のレイヤの固有番号、複数のタスク固有番号、及び複数の行番号は、互いに対応しうる。例えば、レイヤ2(L2)、タスク2(T2)、及び行番号2(H2)は、互いに対応しうる。
推論用学習モデルテーブル(Ti)は、他の学習モデルテーブルと区別される固有番号を有しうる。
【0137】
図20を参照すれば、メインサーバ40は、メインサーバ40でタスク一部(T1~T5)を行い、第1分散サーバ41で第1ないし第2タスク(T6~T10)を分散処理するように決定することができる。第2タスクは、タスクN(T_N)である。
このために、メインサーバ40は、タスク一部(T1~T5)を行い(ステップS810)、推論用学習モデルテーブル(Ti)の固有番号(M_ID)、第1タスク(T6)の直前タスクである第3タスク(T5)の結果値リスト(R5)、及び第2タスクの固有番号(T10)と対応するネットワークテーブル(T_NW)の第2行番号(H10)を第1分散サーバ41に伝送しうる(ステップS812)。
【0138】
ユーザの要請クエリーは、上位の第1細部機能及び下位の第2細部機能として分析される。例えば、要請クエリーが人物の性別分類である場合、上位の入力データの人物検出機能及び下位の認識された人物の性別分類機能として分析される。この場合、人物検出機能に対するディープラーニング推論は、メインサーバ40で行われ、検出された人物の性別分類機能に対するディープラーニング推論は、第1分散サーバ41で行われる。
さらに他の例として、メインサーバ40は、推論用データに対して前処理感知機能のディープラーニングを行って推論用データにメイン機能のディープラーニングが必要な場合のみに、第1分散サーバ41でクエリー機能のディープラーニングを行わせうる。前処理感知機能は、メイン機能であるユーザが要請したクエリーの機能のディープラーニングが必要であるか否かを感知する機能を意味する。例えば、要請クエリーが人物性別分類である場合、前処理感知機能は、入力イメージに人物が存在するか否かを感知する機能である。人物が存在しないイメージは、要請クエリーのディープラーニングを行わないので、時間が短縮され、通信帯域を少なく使用することができる。
第1分散サーバ41は、メインサーバ40から推論用学習モデルテーブル(Ti)の固有番号(M_ID)、及び第3結果値リスト(R5)を受信すれば、第3結果値リスト(R5)を複数のタスクのうち、一連の最初タスク(T1)ないし第4タスク(T5)が行われた結果値リスト(R5)と決定することができる。
【0139】
複数のネットワークテーブルのうち、第6行番号(H6)は、第3行番号(H5)の直後に配されたものである。
第1分散サーバ41は、タスク指示終了行であるネットワークテーブル(T_NW)の第2行番号(H10)をさらに受信すれば、第1分散サーバ41の第1フレームワーク部51で第3結果値リスト(R5)を入力とし、ネットワークテーブル(T_NW)の第6行番号(H6)ないし第2行番号(H10)と関連した演算を行うことができる(ステップS814)。すなわち、第1分散サーバ41は、既生成された推論用学習モデルのうち(Ti)、第1ないし第2タスク(T6~T10)を分散処理することができる。
ネットワークテーブル(T_NW)の第6行番号(H6)ないし第2行番号(H10)の演算が終了すれば、第1分散サーバ41は、第2結果値リスト(R2)をメインサーバ40に伝送しうる(ステップS816-1)。本実施形態は、第2タスク(T10)が最終タスクである場合、またはメインサーバ40で他のタスクを行う必要がある時、本手続きが行われうる。
【0140】
他の実施形態として、メインサーバ40は、第1分散サーバ41が第2分散サーバ42に、ネットワークテーブル固有番号(M_ID)、第2タスク(T10)の第2結果値リスト(R10)及びタスク指示終了行である第7行番号(H_N)を伝送すれば、第1分散サーバ41は、第6行番号(H6)ないし第2行番号(H10)の演算を遂行(ステップS814)後、メインサーバ40の指示を行うことができる(ステップS816-2)。メインサーバ40のクエリー分析部110は、ユーザ要請クエリーを3段階の細部機能として分析及び/または抽出することができる。
【0141】
例えば、クエリーが人物の性別分類機能である場合、クエリー分析部110は、要請クエリーを上位の人物存在感知機能、次の段階の人物検出機能、及び下位の検出された人物の性別分類機能として抽出することができる。入力データであるイメージファイルに人物の存否は、メインサーバ40でディープラーニング推論し、人物が存在するイメージファイルで人物検出機能は、第1分散サーバ41でディープラーニング推論し、検出されたイメージの性別分類機能は、第2分散サーバ42でディープラーニング推論することができる。これを通じて、各サーバでの処理量が減って時間が短縮され、分散サーバで人物があるイメージのみ処理するので、処理時間がさらに短縮される。
第2分散サーバ42は、推論用学習モデルテーブル(Ti)の固有番号(M_ID)、第2結果値リスト(R10)、ネットワークテーブル(T_NW)の第7行番号(H_N)を受信すれば、第2結果値リスト(R10)を入力とし、ネットワークテーブル(T_NW)の行番号11(H11)から行番号N(H-N)までと関連した演算を行うことができる(ステップS818)。すなわち、第2分散サーバ42は、既生成された推論用学習モデルテーブル(Ti)のタスク11ないしN(T11~T_N)を分散処理することができる。
第2分散サーバ42は、分散処理(ステップS818)結果である第7結果値リスト(R_N)を決定し、それをメインサーバ40に伝送しうる(ステップS820)。
【0142】
図24は、本発明の他の実施形態による伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバの一部構成の細部ブロック図である。
図25は、本発明の他の実施形態によるサーバの伝統家屋図面の構造名称を分類する方法のフローチャートである。
図26ないし
図29は、
図24及び
図25の中間データを図示する。
図1ないし
図23を参考にする。前述した構成要素と同じ名称の内容は、前述した内容を参考にする。
【0143】
本実施形態による伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバは、制御部100、保存部200、フレームワーク部300、変換部360、及び入出力部370を含みうる。
図24を参照すれば、制御部100は、クエリー分析部110、データセット管理モジュール120、学習モデル管理モジュール130、結果管理モジュール160、及び補助管理モジュール170を含みうる。保存部200は、クエリー分析値210、データセットテーブル220、学習モデルテーブル230、学習結果260、及び検出情報270を含みうる。
補助管理モジュール170は、順次的な一連の学習モデルのディープラーニング推論によるそれぞれの結果を検出情報270で保存することができる。補助管理モジュール170は、フレームワーク部300で複数の細部機能のそれぞれのディープラーニングを行って、出力された結果物を備えることができる。検出情報270は、(関係型)データベース形式で保存することができる。
【0144】
図25を参照して、本実施形態によるディープラーニングフレームワーク応用データベースサーバの伝統家屋図面の構造名称を分類する方法を説明する。
入出力部370は、ユーザから複数の訓練用伝統家屋図面を訓練用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する構造名称検出機能の訓練クエリーを入力される(ステップS830)。訓練用データセットは、大韓民国伝統家屋の設計図、図面及び/または写真が存在する原本イメージ500を備え、各原本イメージ500にラベリングされたラベル情報を備えることができる。
ラベル情報は、ディープラーニング訓練のための分類された情報であって、原本イメージ500の図面種類情報、主特徴情報、及び従特徴情報を備えることができる。
【0145】
クエリー分析部110は、訓練クエリーを分析して訓練クエリーの機能を果たすための複数の細部機能として抽出することができる(ステップS832)。
クエリー分析部110は、訓練クエリーを複数の細部機能として上位から下位順に順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出することができる。
大韓民国伝統家屋(昔の建物)は、ほとんど正面から見て左右が長く、前後が相対的に狭い長方形の建物である。以下、長さが長い側を正面、短い側を側面と定義し、正面の断面を横断面、側面の断面を縦断面と定義する。建物構造のうち、形状及び/または位置が同一であるか、正面及び側面によって、その名称が変わりうる。または、単純な形状、すなわち、一面から見る場合、単純な形状(四角形、円など)の構造は、一般的な客体検出(object detection)技術で検出されにくい。しかし、検出されにくい構造が他の特徴に従属した特徴を有するならば、検出が可能である。
【0146】
図面種類検出機能は、原本イメージ500である伝統家屋図面が、正面図、側面図、横断面図、縦断面図、細部正面図及び細部側面図のうちいずれであるかを検出する機能である。
主特徴検出機能は、構造名称を図面で直接、または図面種類と共に伝統家屋の構造名称を検出する機能である。従特徴検出機能は、図面種類及び主特徴検出機能による構造名称のうち少なくとも主特徴検出機能による構造名称があってこそ、伝統家屋の構造名称を検出することができる機能である。主特徴及び従特徴情報は、構造名称と構造名称が指示する領域の位置情報とを備えることができる。領域位置情報は、例えば、領域が四角形である場合、対角する頂点の座標情報である。
【0147】
図面種類検出機能は、主特徴検出機能の一部を機能することができる。主特徴検出機能は、従特徴検出機能の一部を機能することができる。従特徴検出機能は、従特徴で検出された構造名称を用いて他の構造名称を検出することができる。
主特徴及び従特徴検出機能による構造名称は、基壇、軸部、杭包、屋根、柱、道里、梁、柱頭、小櫨、山彌、檐遮などがある。ある構造名称は、図面種類によって第1図面種類では主特徴検出機能の出力になり、第2図面種類では従特徴検出機能の出力になる。
【0148】
学習モデル管理モジュール130は、訓練クエリー、すなわち、複数の細部機能に適した学習モデルテーブルを選択することができる(ステップS834)。学習モデル管理モジュール130は、複数の学習モデルテーブルのうち、前記複数の細部機能に適した未学習の図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルを選択することができる。
制御部100は、ディープラーニング訓練のための準備ができる(ステップS836)。ディープラーニング訓練準備は、フレームワーク部300でディープラーニングを行うように学習モデルテーブルによって学習モデルを構築することの以外に、学習モデル別に入力用データセットを生成することを含みうる。
【0149】
データセット管理モジュール120は、訓練用データセットを訓練用データセットテーブルに変換することができる。データセット管理モジュール120は、訓練用データセットテーブルを用いて学習モデル別の第1ないし第3訓練用データセットテーブルを生成することができる。第1ないし第3訓練用データセットテーブルは、原本イメージ500を備え、それぞれラベル情報のうち少なくとも図面種類情報をさらに備えることができる。第2訓練用データセットテーブルは、主特徴情報をさらに備えることができる。第3訓練用データセットテーブルは、主特徴情報の一部、及び従特徴情報をさらに備えることができる。第1ないし第3訓練用データセットテーブルは、ユーザによって指定される。
【0150】
フレームワーク部300は、図面種類検出訓練用モデルテーブル、主特徴検出訓練用モデルテーブル、及び従特徴検出訓練用モデルテーブルのそれぞれに連動して複数の細部機能のディープラーニング訓練を順次に行って(ステップS838)、最終的に学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを生成(ステップS840)することができる。
フレームワーク部300は、図面種類検出訓練用モデルテーブルに対応する図面種類検出訓練用学習モデルに図面種類がラベリングされた原本イメージ500を備えた第1訓練用データセットテーブルを入力として、ディープラーニング訓練を行うことができる。フレームワーク部300は、ディープラーニング訓練による図面種類情報を検出することができる学習された図面種類検出学習モデルを生成することができる。データセット管理モジュール120は、図面種類検出学習モデルによる学習された図面種類検出モデルテーブルを生成することができる。
フレームワーク部300は、主特徴検出訓練用モデルテーブルに対応する主特徴検出訓練用学習モデルに図面種類及び主特徴情報がラベリングされた原本イメージ500を備えた第2訓練用データセットテーブルを入力として、ディープラーニング訓練を行うことができる。フレームワーク部300は、ディープラーニング訓練による主特徴情報を検出することができる学習された主特徴検出学習モデルを生成することができる。データセット管理モジュール120は、主特徴検出学習モデルによる学習された主特徴検出モデルテーブルを生成することができる。
フレームワーク部300は、従特徴検出訓練用モデルテーブルに対応する従特徴検出訓練用学習モデルに図面種類、主特徴情報の少なくとも一部、及び従特徴情報がラベリングされた原本イメージ500を備えた第3訓練用データセットテーブルを入力として、ディープラーニング訓練を行うことができる。フレームワーク部300は、ディープラーニング訓練による従特徴情報を検出することができる学習された従特徴検出学習モデルを生成することができる。データセット管理モジュール120は、従特徴検出学習モデルによる学習された従特徴検出モデルテーブルを生成することができる。
【0151】
図27は、原本イメージ500が正面図及び側面図である場合を図示する。
図27を参照すれば、主特徴検出学習モデル234は、構造名称として、第1軸部情報、第1杭包情報、及び第1屋根情報を検出することができる。従特徴検出学習モデル236は、前記第1軸部情報を用いて第1基壇情報を検出し、前記第1軸部情報と前記第1杭包情報とを用いて第1柱情報を検出することができる。軸部、杭包、及び屋根は、クラス別にユニークな特性が存在して、主特徴情報として検出される。基壇は、クラス別に一貫した特徴がないが、軸部の下の構造物と把握されて、データセットを前記のように構成すれば、従特徴情報として検出される。柱は、単純な四角形で特性が導出されにくいが、柱上に杭包が常に存在するので、杭包に従属した従特徴情報として検出される。
【0152】
図28は、原本イメージ500が横断面図及び縦断面図である場合を図示する。
図28を参照すれば、原本イメージ500が横断面図である場合、主特徴検出学習モデル234は、第2杭包情報を検出することができる。従特徴検出学習モデル236は、原本イメージ500が横断面図である情報及び前記第2杭包情報を用いて、第1道里情報及び第1梁情報を検出することができる。原本イメージ500が縦断面図である場合、主特徴検出学習モデル234は、第3杭包情報を検出することができる。従特徴検出学習モデル236は、原本イメージ500が縦断面図である情報及び前記第3杭包情報を用いて、第2道里情報及び第2梁情報を検出することができる。杭包は、特異な特性が存在して、主特徴情報として検出される。道里と梁は、長い四角柱または円柱状に単純な形状に杭包に従属して検出され、道里と梁は、置かれた方向(縦横)によって区分される特徴で図面種類に従属して検出される。
図29は、原本イメージ500が細部図面として正面図及び側面図である場合を図示する。
図29を参照すれば、原本イメージ500が細部正面図である場合、主特徴検出学習モデル234は、第4杭包情報及び第4柱情報のうち少なくとも1つである第1区分情報、及び正面の檐遮情報を検出することができる。従特徴検出学習モデル236は、原本イメージ500が細部正面図である情報及び前記第1区分情報を用いて、第1柱頭情報及び第1小櫨情報を検出し、原本イメージ500が細部正面図である情報及び前記第1柱頭情報を用いて正面の山彌情報を検出することができる。原本イメージ500が細部側面図である場合、主特徴検出学習モデル234は、第5杭包情報及び第5柱情報のうち少なくとも1つである第2区分情報、及び断面の山彌情報を検出することができる。従特徴検出学習モデル236は、原本イメージ500が細部側面図である情報及び前記第2区分情報を用いて、第2柱頭情報及び第2小櫨情報を検出し、原本イメージ500が細部側面図である情報及び前記第2柱頭情報を用いて断面の山彌情報を検出することができる。柱頭と小櫨は、ユニークなパターンが存在するが、その形状が同じである。しかし、柱頭と小櫨は、柱との連結有無及び/または杭包の底面に位置する有無に区分することができて、柱及び杭包のうち少なくとも1つに従属して検出される。檐遮と山彌は、ユニークなパターンが存在するが、形状が互いに類似し、断面が単純な形状である。しかし、檐遮及び山彌は、正面及び側面によって、その区別が可能である。これにより、正面の檐遮及び断面の山彌は、非従属的に検出される。断面の檐遮及び正面の山彌は、四角形などの単純な形状であるが、柱頭との位置関係として検出されて、図面情報及び柱頭に従属して検出される。正面の檐遮及び断面の山彌は、柱頭と同時に検出されるか、柱頭検出後、追加段階を経て検出されるように具現可能である。
【0153】
他の実施形態として、図面種類検出機能及び主特徴検出機能は、ビジョニング(visioning)技術に代替されうる。ビジョンに使われる客体判断する映像処理技術が、速度やコンピューティング仕様にさらに有利であるためである。
入出力部370は、ユーザから推論用伝統家屋図面を推論用データセットとして、前記伝統家屋図面から伝統家屋の構造名称を検出する名称検出機能の推論クエリーを入力される(ステップS842)。
クエリー分析部110は、推論クエリーを分析して推論クエリーの機能を果たすための複数の細部機能として、順次的な図面種類検出機能、主特徴検出機能、及び従特徴検出機能を抽出することができる。データセット管理モジュール120は、推論用データセットを推論用データセットテーブルに変換することができる。
学習モデル管理モジュール130は、複数の学習モデルテーブルのうち、既学習された図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルを選択することができる。フレームワーク部300は、図面種類検出モデルテーブル、主特徴検出モデルテーブル、及び従特徴検出モデルテーブルのそれぞれに連動して複数の細部機能のディープラーニング推論を順次に行うことができる。
【0154】
フレームワーク部300は、図面種類検出モデルテーブルによる図面種類検出学習モデルを用いて推論用データセットテーブルに備えられた推論用原本イメージ500の図面種類情報522を検出するディープラーニング推論を行うことができる(ステップS844)。補助管理モジュール170は、推論用原本イメージ500の固有番号であるイメージID510及び図面種類情報522を備える検出情報270を生成することができる(ステップS846)。データセット管理モジュール120は、推論用原本イメージ500と図面種類情報522とを備える中間第1データセットテーブルを生成することができる(ステップS848)。
フレームワーク部300は、主特徴検出モデルテーブルによる主特徴検出学習モデルを用いて中間第1データセットテーブルから推論用原本イメージ500の主特徴情報524を検出するディープラーニング推論を行うことができる(ステップS850)。補助管理モジュール170は、検出情報270が主特徴情報524をさらに備えるようにアップデートすることができる(ステップS852)。データセット管理モジュール120は、中間第1データセットテーブルに主特徴情報524のうち少なくとも一部をさらに備える中間第2データセットテーブルを生成することができる(ステップS854)。
フレームワーク部300は、従特徴検出モデルテーブルによる従特徴検出学習モデルを用いて中間第2データセットテーブルから従特徴情報526を検出するディープラーニング訓練を行うことができる(ステップS856)。補助管理モジュール170は、検出情報270が従特徴情報526をさらに備えるようにアップデートすることができる(ステップS858)。
【0155】
データセット管理モジュール120は、推論用原本イメージ500及び推論用原本イメージ500のイメージID510を備える検出情報270の細部情報を用いて、推論用原本イメージ500に図面種類をラベリングし、構造名称に該当する領域に構造名称をラベリングして結果イメージ540で保存することができる。データセット管理モジュール120は、結果イメージ540をデータベース形式のテーブルで保存することができる。
本実施形態による伝統家屋図面の構造名称を分類するディープラーニングフレームワーク応用データベースサーバは、前述したディープラーニング推論による複数のタスクのうち、一部である一連のタスクを複数の分散サーバ41~43のうち少なくとも何れか1つに行わせて、ディープラーニング推論を分散処理することができる。また、本サーバは、未学習の学習モデルに対してディープラーニング訓練を複数の分散サーバ41~43と分散して進行することができる。
【0156】
前記本発明は、ハードウェアまたはソフトウェアで具現可能である。具現は、前記本発明は、またコンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。すなわち、コンピュータによって実行可能な命令語を含む記録媒体の形態として具現可能である。コンピュータで読み取り可能な媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の媒体を含む。コンピュータで読み取り可能な媒体は、コンピュータ記録媒体及び通信記録媒体を含みうる。コンピュータ記録媒体は、コンピュータで読み取り可能な命令語、データ構造、プログラムモジュール、及びその他のデータなど情報保存のための任意の方法または技術として具現されたあらゆる保存可能な媒体を含むものであって、揮発性/不揮発性/ハイブリッド型メモリ有無、分離型・非分離型有無などに限定されるものではない。通信記録媒体は、搬送波のような変調されたデータ信号または伝送メカニズム、任意の情報伝達媒体などを含む。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
また、以上、本発明の望ましい実施形態について図示し、説明したが、本発明は、前述した特定の実施形態に限定されず、特許請求の範囲で請求する本発明の要旨を外れずに、当業者によって多様な変形実施が可能であるということはいうまでもなく、このような変形実施は、本発明の技術的思想や展望から個別的に理解されてはならない。
【符号の説明】
【0157】
10:DBサーバ
20:端末機
40:メインサーバ
41:第1分散サーバ
42:第2分散サーバ
43:第3分散サーバ
51:第1フレームワーク部
52:第2フレームワーク部
53:第3フレームワーク部
100:制御部
110:クエリー分析部
120:データセット管理モジュール
130:学習モデル管理モジュール
160:結果管理モジュール
170:補助管理モジュール
200:保存部
300:フレームワーク部
310:QMLモジュール
320:統合部
360:変換部