はじめに:JOAI・IOAIについて

日本人工知能オリンピック(JOAI)とは?

日本人工知能オリンピック(JOAI)は、AIの世界的コンテストである「国際人工知能オリンピック(IOAI)」の日本代表選考を兼ねた国内大会です。 データ分析プラットフォーム「Kaggle」上で開催され、中高生・高専生を対象とした「選抜枠(代表選考対象)」と、大学生や社会人も参加できる「オープン枠」の2部門があります。競技内容は共通のため、年齢を問わず実力を試すことができます。

初めての方でも、JOAIをきっかけにAIを学びはじめられるように初心者向けのチュートリアル講座も用意しています。

国際人工知能オリンピック(IOAI)とは?

国際人工知能オリンピック(IOAI)は、世界各国の高校生がAI技術と科学的課題解決力を競う国際科学オリンピックの一つです。2024年にブルガリアで第1回大会が開催され、次世代のAIパイオニアを育成することを目的としています。

詳細は公式ページをご覧ください。

JOAI/IOAIへの参加のメリット

JOAIやIOAIへの挑戦は、単に順位を競うだけでなく、これからの時代に必須となるスキルを磨き、自身の将来の可能性を大きく広げるチャンスです。

  • JOAIへの参加で得られること
    • 現代必須のAI技術を実践形式で学べる
      • 教科書や動画を見るだけの学習とは異なり、実際に手を動かしてモデルを作り、精度を上げる過程で生きた技術が身につきます。
      • プログラミング、データ分析、数学的思考といった、AI時代に社会で最も重要視されるスキルの根本的な学習機会となります。
    • ゲーム感覚で実力を客観的に測れる
      • JOAIはKaggleというプラットフォームを使用するため、自分の作成したAIの精度がすぐにスコアとして可視化されます。
      • 「勉強」というよりも「e-sports」のようなゲーム感覚で楽しみながら、全国のライバルたちと公平なルールで実力を競い合うことができます。自分の現在の立ち位置を客観的に知る絶好の機会です。
  • 日本代表になることで得られること
    • 世界基準の仲間との出会い
      • 国内トップレベルの同世代、そして国際大会では世界中の「AIを志す若き才能」と交流することができます。
    • 進路を切り拓く強力な実績
      • 「国際科学オリンピック」の一つであるIOAIへの出場実績や、JOAIでの上位入賞実績は、その高い専門性と問題解決能力の証明になります。
      • 近年増えている大学入試の総合型選抜(旧AO入試)での活用はもちろん、過去の科学オリンピック代表者の中には、その実績を活かして海外大学へ進学する例も多くあります。

敵を知ろう:競技形式と過去問分析(2025年大会の事例)

JOAIとIOAIは共に「AIモデルの精度や課題解決能力」を競いますが、ルールや形式には違いがあります。ここでは、直近の2025年大会の実績をベースにその傾向を解説します。

JOAI2025の形式と問題例

概要と形式

  • 開催場所:オンライン
  • 期間:約1週間(2025年は4月25日〜5月2日)
  • 形式:Kaggleというプラットフォーム上で、コンペティション形式で開催

問題例

コンペティション期間中で取り組む問題は1問のみです。
JOAI2025では『表・画像・テキストのマルチモーダル情報を用いて、ガスの種類を予測するタスク』に対するAIの性能を競う課題を出題しました。

JOAI2025と同様のタスクについては、Kaggle上で公開しています。詳細なルール、データや評価方法、チュートリアル用のサンプルコード等については以下をご確認ください↓
https://www.kaggle.com/competitions/playground-joai-competition-2025/overview

修了後の講評についてはこちら↓
https://speakerdeck.com/upura/joai2025-review

IOAI2025の形式と問題例

概要と形式

  • 開催場所:オフライン開催(2025年は北京)
  • 期間:約1週間(2025年は8月2日〜8月9日)
  • 形式
    • Team Challenge
      • 各国 4 人 1 チームで 1 つの課題に取り組む
      • こちらの結果はメダルとは無関係
    • Individual Contest
      • AI 関連の問題 3 問を 6 時間で解くのを 2 日間行う
      • 大会1ヶ月前に、前半3問に関係した問題が At Home Taskとして公開されて対策をすることができる
      • 各問題の絶対スコアが相対スコアに変換され、その合計得点で順位が決まる

問題例

各コンテストの問題やデータ等については以下のリポジトリで公開されています:
https://github.com/IOAI-official/IOAI-2025

  • 制限時間: 1問あたり約2時間
  • 評価基準: 相対スコア制(他チームとの比較で順位が決定)
  • 対策の鍵: ゼロからすべてを作るのではなく、与えられた不完全なコードやモデルを素早く理解し、短時間で動く形に修正・改善する「実装力」と「瞬発力」が問われます。

ここでは、Individual Contest のうちの1問である「烏骨鶏(シルキー)のカウントモデル作成」 についてご紹介します。農家と保険会社のために、画像中の鶏の数を正確に数えるAI(密度推定モデル)を開発するという、実社会の課題に即した問題でした。参加者には事前学習済みの特徴抽出モデル(重みの一部)が与えられ、それをベースに「Decoder(復元部分)」を自分で設計・実装することが求められました。

以下は問題の抜粋です:

AI研究チームのリーダーとして、あなたは烏骨鶏(シルキー)農家と協力し、伝統的な放し飼い農法における重要な課題の解決を任されています。家畜の正確なカウントは農家と保険会社の双方にとって極めて重要であり、疾病の発生や外敵の侵入といった要因が短期間で鶏の生存率に大きな影響を与える可能性があります。保険によって農業リスクを軽減できる一方で、保険金請求の手続きでは家畜損失の正確な数が求められます。こうした背景から、農家はより正確で自動化されたカウントシステムの開発をあなたのチームに依頼しています。あなたの研究チームには、農場管理と保険手続きの双方を支える信頼性の高いカウントを実現するため、密度推定技術を用いた最適化された烏骨鶏カウントモデルを開発するという課題が課されています。

チームは既に烏骨鶏画像用の事前学習済み特徴抽出器にアクセスできますが、完全なカウントソリューションを構築するためには密度推定用デコーダを設計し、学習させる必要があります。あなたのタスクはこの土台の上に、効果的なデコーダアーキテクチャと学習戦略を開発し、農家と保険会社の双方が信頼できる正確なカウントを実現することです。

下図は、データセット内の1枚の画像と、対応する真の密度分布、およびベースラインモデルによって生成された予測密度分布を示しています。総密度(全領域の密度の合計)がラベルとして付されています。


(省略)

3. Task
あなたのタスクは、訓練データを用いて密度マップを予測する独自モデルを学習し、鶏のカウントを行えるようにすることです。

与えられた事前学習済みモデルを拡張・最適化し、カウント予測の精度を向上させても構いません。
事前学習済みモデル base.pth には、モデルの最初の4層(特徴抽出モジュール)の重みのみが含まれています。ベースラインコードにある load_pretrained_weights_partial 関数を使用することで、これらの部分的な重みを自分のモデルに読み込むことができます。

あなたは DensityDecoder を構築し、事前学習済み特徴抽出モジュールと組み合わせることで、完全なデータ予測モデルを形成できます。


class DensityDecoder(nn.Module):
    def __init__(self):
        #################################################
        # Your code here
        #################################################

    def forward(self, x):
        #################################################
        # Your code here
        #################################################
        return x


(省略)

https://github.com/IOAI-official/IOAI-2025/blob/main/Individual-Contest/Chicken_Counting/Chicken_Counting.ipynb より抜粋・翻訳

出題範囲と必須スキル

JOAI/IOAI で出題される範囲

IOAIで出題される可能性のある範囲はシラバスとして公開されています。
2026年の日本語訳版シラバスについてはこちら

JOAIについても、基本的には上述の範囲に関連した内容が出題されます。

身につけるべき重要トピック

とりわけJOAI/IOAIの問題に取り組むためにまず身につけると良い重要トピックを以下に示します:

  • プログラミング言語 Python
    • JOAI・IOAI共に利用する言語は Python になります。
    • 近年のAI分野、特に応用領域の実装においては、Pythonが支配的な言語となっています。
  • Pythonで扱える主要ライブラリ
    • データ処理系:Numpy, Pandas
    • 可視化:Matplotlib
    • 機械学習:Scikit-learn, LightGBM
    • 深層学習:PyTorch
  • 機械学習の理論面
    • 基本タスク:回帰、分類
    • 画像認識:CNN(畳み込みネットワーク)、ViT(Vision Transformer)
    • 自然言語処理:Transformer、LLM
  • Kaggle の使い方
    • JOAIでは Kaggle プラットフォーム上で開催されます。

これらについて、課題を解けるように学ぶ必要があります。

初心者にオススメのJOAI勉強法

初めてJOAIに取り組む方向けにオススメの勉強法についてご紹介します。

Step1: Python とデータ分析ライブラリの使い方を最低限学ぶ

まず、 Python とデータ分析の基本となるライブラリの使い方等を学ぶのがオススメです。
近年ではPython入門用の書籍やウェブサイトが数多くあります。それらを見ながら、コードを書いて動かすことに慣れておきましょう。

具体的には以下の項目について、一通り確認してみると良いです:

  1. Pythonの基本構文
    • 数値演算と変数: 四則演算、変数の定義、関数の基礎、コメントの書き方
    • 条件分岐と論理演算: if文、比較演算子、エラー処理とデバッグの基本
    • 文字列操作: 文字列の生成、スライス、検索、メソッドの活用
  2. データ構造と制御構文
    • リストとタプル: インデックス操作、多重リスト、for文による繰り返し処理
    • 辞書 (Dictionary): キーと値の操作、メソッド、辞書とリストの組み合わせ
    • ループと制御: while文、break/continue、内包表記(リスト内包表記など)
  3. 関数・クラス・ファイル操作
    • 関数の応用: 引数、返値、スコープ、ラムダ式、高階関数 (map/filter)
    • ファイル入出力: ファイルの読み書き、with文、モジュールのインポートと作成
    • クラスとオブジェクト: クラス定義、初期化、継承の基礎
  4. データ分析・数値計算ライブラリ
    • NumPy: 配列の構築、要素の操作、行列演算の基礎
    • pandas: SeriesとDataFrameの作成、CSV読み込み、データの参照・追加・削除、統計量の算出
  5. (余裕があれば)scikit-learnなどを利用した機械学習の基礎
    • 機械学習の概要: 教師あり学習(分類・回帰)と教師なし学習(クラスタリング)の違い
    • モデル構築: データの準備、学習の実行、基本的なモデルの利用方法

教材に悩んだ場合は東京大学「Pythonプログラミング入門」の教材 を見ながら自習してみると良いでしょう。Colaboratory と呼ばれる、無料でブラウザ上でPythonを実行することができる環境を用いながら学ぶことができます。

Step2: JOAI2025のチュートリアルを動かしてみる

プログラミングの基礎を理解したら、実際のJOAIのデータに触れてみましょう。

JOAI2025では初心者向けのチュートリアルコードを公開しています。これを通してKaggleというプラットフォームに慣れることも重要です。チュートリアル講座の録画も確認することができるので、LLM (ChatGPT等) の助けも借りながら何をやろうとしているのか確認してみましょう。LLM (ChatGPT等) の助けを借りてもチュートリアルコードが少しも理解できない場合は、まだ Step2 に進むのは早いかもしれません。

とはいえ、この段階では何をしているのかすべて分かる必要はありません。最終的にどのような能力が必要なのかを理解し、今後の学習の指針を立てるために進めると良いでしょう。

Step1の時点では不要ですが、JOAI/IOAIで良く出題されるニューラルネットワークを利用したコードを実行するためには「GPU」と呼ばれる計算資源が必要になります。始めは Colaboratory や Kaggle Notebook と呼ばれる環境で一定時間無料で利用することができるので、そちらを利用すると良いでしょう。

Step3: 機械学習(特に教師あり学習)の理論と実践

ある程度全体像を掴めて来た段階でより深い理解と実践に移っていきましょう。

やることとしては以下の2つを組み合わせてやると良いです。

  • 書籍等を通した機械学習の理論やコードの書き方の学習
  • コンペティションを通した実践的な訓練

書籍は後述するオススメ書籍なども候補に入れつつ、自身に足りない部分を補強する形で取り組むと良いでしょう。

コンペティションに関しては、ディスカッションが充実している Kaggle や atmaCup の過去コンペを中心に取り組むのがオススメです。

迷った場合は以下からピックアップして取り組んで見ましょう:

余裕がある場合は、開催中のコンペティションに取り組んでみるのも実践的です。終了後には上位解法などを読んでしっかり復習することを忘れないようにしましょう。

Tips:上位を目指すために必要な能力

『多様な手法の仕組み・メリットやデメリットを理解しており、適切に使い分け・優先順位付け・実装ができる能力』を鍛えると良いです。

理由としては、JOAI/IOAIで勝つために必要な能力は以下のようになると考えられるためです:

  • JOAI:限られた期間内(JOAI2025は1週間程度)で、ニューラルネットワークを中心に試行錯誤し、特定タスクの性能を向上させる能力
  • IOAI:与えられた不十分なベースラインからスタートし、短時間で多様なタスクの筋の良い解法を考えて実装する能力

具体的な取り組みとしては、上記能力を身につけることを意識しながら、上述の Step3 で言及したような多様な過去のコンペティションに取り組んでみると良いでしょう。

Tips:LLM(ChatGPT等)をメンターにする

独学で詰まったときは、ChatGPTやGeminiなどのLLMを活用しましょう。

周りに詳しい人がいない場合、初めての方がプログラミングを学ぶのは少しハードルが高く感じるかもしれません。ですが、近年は ChatGPT や Gemini などの LLM の力により新しいことを理解することが容易になってきています。
どこから何を学べば良いかや、疑問点の解消、コードの理解など、ぜひAIを活用しながらAIの学習を進めると良いでしょう。

オススメ書籍

PythonではじめるKaggleスタートブック

初学者向けのKaggle入門書です。Titanicコンペというチュートリアル用のコンペを題材にKaggleについて学ぶことができます。Kaggleというプラットフォームに触れたことが無い方は、まずはこの書籍で参加の仕方など含めて学ぶと良いでしょう。

Kaggleで勝つデータ分析の技術

評価関数からクロスバリデーション・特徴量エンジニアリング・スタッキングなど、Kaggle等のコンペティションに取り組む上で知っておくべき重要な概念が多数記載されています。上述の「PythonではじめるKaggleスタートブック」に比べると難易度が上がりますが、ぜひ手元に置いておきたい一冊です。
注意点としては、モデルとしてはニューラルネットワークの話題はあまり出ず、 LightGBM を話題の中心としていることです。実際のJOAIやIOAIではニューラルネットワークを扱うケースが多いので、そちらに関しては別のリソースで補強する必要があるでしょう。

ディープラーニングを支える技術 ——「正解」を導くメカニズム[技術基礎]

初学者に向けたディープラーニングの技術解説書です。
図も豊富に含まれており、初めてディープラーニングを学ぶ人が仕組みを理解するのにちょうど良い本です。
注意点としては、仕組みの解説が中心で実際の実装方法等については取り扱っていないことです。コーディングや実践に関しては、過去のコンペティションなどを参考にすると良いでしょう。

Kaggleではじめる大規模言語モデル入門 自然言語処理〈実践〉プログラミング

2026年01月16日発売の書籍です。テキストデータを扱うコンペティション(NLPコンペ)に焦点を当てており、とりわけLLMを中心としたNLP系の話題について深堀りしたい場合に参照するとよいでしょう。

参考になるリンク