出題範囲
- AI)入力層と出力層
- AI)重み
- AI)行列の掛け算
- AI)順伝播の計算
- AI)バイアス項の導入
- AI)sigmoid関数
- AI)正解値の導入
- AI)二乗和誤差
- AI)誤差の微分
- AI)誤差逆伝播法
- AI)連鎖律
- AI)偏微分
- AI)アダマール積
- プログラミング)Numpy
- プログラミング)Pandas
- プログラミング)Matplotlib
- プログラミング)Seaborn
- プログラミング)Scikit-learn
- 数学)集合と確率 -和集合と共通部分 -絶対補と相対補 -ベイズ確率-条件付き確率
- 数学)数列と行列 -ニューラルネットワークの基本的なネットワークの記載に必要な数式の読解力を問う
- 数学)関数と微分 -ニューラルネットワークの連鎖率で使われる数式の読解力を問う
例題に挑戦
スキルサートのAIが生成した演習問題のサンプルです。アプリでは毎週新しい問題が追加されます。
例題1
PandasのDataFrame `df` から、'age'列の値が30以上である行のみを抽出するための正しい記述はどれか。
- df.select('age >= 30')
- df.filter('age >= 30')
- df[df['age'] >= 30]
- df.get(df['age'] >= 30)
- df.where('age >= 30')
解答と解説を見る
正解: df[df['age'] >= 30]
正解は『df[df['age'] >= 30]』です。Pandasでは、DataFrameに対して条件式(ブールインデックス)を渡すことで、その条件を満たす行のみを抽出できます。`df['age'] >= 30` という記述は、各行が条件を満たすかどうかを判定してTrueまたはFalseを返すSeriesを生成します。これを元のDataFrameのインデックスに渡すと、Trueの行だけが抽出されます。`filter`は主にラベル(インデックス名やカラム名)に基づいてデータを抽出するためのメソッドであり、ブール式のフィルタリングには用いられません。また、`select`は標準的なPandasには存在せず、`where`は条件を満たさない部分をNaNにする等の挙動になるため、行の抽出とは異なります。
例題2
Pandasで欠損値(NaN)を扱うためのメソッドとして、不適切なものはどれか。
- dropna()
- interpolate()
- unique()
- fillna()
- isna()
解答と解説を見る
正解: unique()
正解は『unique()』です。`unique`メソッドは、Seriesなどのオブジェクト内に含まれる一意な(ユニークな)値を取得するために使用されます。欠損値が含まれる場合は結果にNaNが含まれることもありますが、欠損値自体を処理(削除や補完)するための専用メソッドではありません。一方、`dropna`は欠損値を含む行や列を削除し、`fillna`は欠損値を指定した値で埋めることができ、`isna`(または`isnull`)は欠損値の有無を判定するために用いられます。また、`interpolate`は周辺の値から欠損値を線形補間などによって推定して埋める際に非常に有用なメソッドです。実務上、欠損値の扱いは非常に重要であるため、これらのメソッドの使い分けが重要となります。
重要用語
- 入力層
- ニューラルネットワークの最初の階層であり、外部からデータを受け取る役割を担います。入力データの次元数、すなわち特徴量の数に合わせてユニット数が決定されます。この層では重み計算などの演算は行われず、受け取った数値をそのまま次の中間層へと受け渡します。データの適切な前処理やスケーリングが行われていることが、モデルの学習の安定性に直結します。
- 出力層
- ネットワークの最終的な計算結果を出力する階層です。解くべき問題の種類(回帰、二値分類、多クラス分類など)によって、ユニット数や適用される活性化関数が異なります。例えば、多クラス分類ではクラス数と同じユニット数が必要となり、ソフトマックス関数が用いられます。この層から得られる値が、最終的な予測値として評価や損失計算の対象となります。
- 特徴量
- 入力層に与えられる、予測や分類の手がかりとなるデータの属性のことです。AIモデルの精度は、どのような特徴量を選択し、どのように加工して入力層に渡すかに大きく依存します。数値データだけでなく、画像データであれば各ピクセルの輝度値、テキストであればベクトル化された数値などが特徴量として扱われ、入力層の各ユニットに対応する形で入力されます。
- ワンホットエンコーディング
- カテゴリ変数をニューラルネットワークで扱える形式に変換する手法です。特定の項目に該当する場合は「1」、それ以外を「0」として表現します。例えば、3種類のクラスがある場合、[1, 0, 0]のようなベクトルで表現します。多クラス分類の出力層における正解ラベル(教師データ)の表現方法として、また入力データの形式として試験でも頻出の重要な概念です。
- ソフトマックス関数
- 主に多クラス分類問題の出力層で使用される活性化関数です。複数の出力値の合計が必ず1.0(100%)になるように変換するため、各出力ユニットの値を「そのクラスに属する確率」として解釈することができます。指数関数を用いるため、入力のわずかな差が確率の大きな差として現れる特徴があり、最も値が大きいクラスを予測結果として採用する際に適しています。
- シグモイド関数
- 主に二値分類(「合格」か「不合格」かなど)の出力層で用いられる活性化関数です。任意の入力を0から1の範囲の数値に変換するため、ある事象が発生する確率として表現できます。出力値が0.5以上であれば正のクラス、0.5未満であれば負のクラスと判定するのが一般的です。出力層での役割だけでなく、中間層の活性化関数としても歴史的に重要な役割を持っていました。
- 恒等関数
- 入力された値をそのまま加工せずに出力する関数で、主に回帰問題(住宅価格や気温など、連続的な数値を予測する問題)の出力層で使用されます。活性化関数の一種として分類されますが、出力される数値に範囲の制限を設けたくない場合に適しています。ニューラルネットワークの計算結果を直接予測値として扱いたい場合に、この関数が出力層に適用されます。
- 正規化
- 入力層にデータを渡す前に行う処理の一つで、データの値を一定の範囲(一般的には0から1)に収めることを指します。各特徴量のスケール(単位や桁数)が大きく異なると、学習が不安定になったり収束が遅くなったりする原因となります。最小値と最大値を利用して値を変換することで、すべての特徴量を平等に扱い、勾配降下法による学習を効率的に進めるために不可欠な工程です。
AI実装検定A級の対策はアプリで
AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。