データにRBMを適応することで精度の良い特徴抽出を行って、良好な符号化ができるようにする。【解決手段】パラメータ学習ユニットと符号化ユニットとを備える。パラメータ学習ユニットは、入力データを表現する可視素子と、潜在的な情報を表現した隠れ素子との間に結合重みが存在すると仮定した制限ボルツマンマシンによる確率モデルを適用して、学習用データに対して、隠れ素子および結合重みを推定する処理を行う。符号化ユニットは、符号化用入力データに対して、パラメータ学習ユニットで推定した確率モデルを適用して、隠れ素子を推定し、推定した隠れ素子を符号化データとして出力する。ここで、学習用データおよび符号化用入力データは複素数データであり、制限ボルツマンマシンによる確率モデルが持つ可視素子および隠れ素子は、実部と虚部を持つようにした。プログラムを提供することを目的とする。本発明の符号化装置は、パラメータ学習ユニットと符号化ユニットとを備える。パラメータ学習ユニットは、入力データを表現する可視素子と、潜在的な情報を表現した隠れ素子との間に結合重みが存在すると仮定した制限ボルツマンマシンによる確率モデルを適用して、学習用データに対して、隠れ素子および結合重みを推定する処理を行う。符号化ユニットは、符号化用入力データに対して、パラメータ学習ユニットで推定した制限ボルツマンマシンによる確率モデルを適用して、隠れ素子を推定し、推定した隠れ素子を符号化データとして出力する。ここで、学習用データおよび符号化用入力データは複素数データであり、制限ボルツマンマシンによる確率モデルが持つ可視素子および隠れ素子は、実部と虚部を持つようにしたことを特徴とする。本発明の符号化方法は、パラメータ学習処理と符号化処理とを含む。パラメータ学習処理は、入力データを表現する可視素子と、潜在的な情報を表現した隠れ素子との間に結合重みが存在すると仮定した制限ボルツマンマシンによる確率モデルを適用して、学習用データに対して、隠れ素子および結合重みを推定する処理を行う。符号化処理は、符号化用入力データに対して、パラメータ学習処理で推定した制限ボルツマンマシンによる確率モデルを適用して、隠れ素子を推定し、推定した隠れ素子を符号化データとして出力する。ここで、パラメータ学習処理で得られる学習用データと符号化処理で得られる符号化用入力データは複素数データであり、制限ボルツマンマシンによる確率モデルが持つ可視素子および隠れ素子は、実部と虚部を持つようにしたことを特徴とする。本発明のプログラムは、複素数データで構成される学習用データおよび符号化用入力データを入力として、上述した符号化方法のパラメータ学習処理を実行するステップと、符号化処理を実行するステップをコンピュータに実行させるものである。本発明によると、制限ボルツマンマシン(RBM)を複素数に拡張した複素RBMによる特徴量の抽出を行うことができ、高い精度で入力データから特徴量を抽出して符号化することが可能になるので、効率の良い符号化が行えるようになる。