- [’17 Nucleic Acids Research] FlavorDB: a database of flavor molecules
- [’17 CVPR] Learning Cross-modal Embeddings for Cooking Recipes and Food Images
- [’19 IJCAI] KitcheNette: Predicting and Recommending Food Ingredient Pairings using Siamese Neural Networks
- [’21 Nature Scientific Reports] FlavorGraph: a large‑scale food‑chemical graph for generating food representations and recommending food pairings
- [’24 Nature Communications] Predicting and improving complex beer flavor through machine learning
- [’24 NeurIPS] SMELLNET: A Large-scale Dataset for Real-world Smell Recognition
1. 들어가며
이번 글에서는 2024년 NeurIPS에 발표된 SmellNet 논문의 주요 내용을 정리해보겠습니다.
딥러닝의 발전은 이미지와 언어 같은 특정 도메인에서의 대규모 데이터 구축을 기반으로 이루어져 왔습니다. ImageNet, Common Crawl 같은 데이터셋은 오늘날의 비전 모델과 언어 모델 발전에 결정적인 역할을 했죠. 하지만 시각과 언어 외의 감각, 특히 후각(냄새)이라는 도메인에서는 이처럼 학습 가능한 수준의 대규모 데이터셋조차 존재하지 않는 상황이었습니다.
그 이유는 단순합니다. 냄새는 매우 주관적인 경험이기 때문입니다. 동일한 화학 물질도 사람마다 향기롭게 혹은 불쾌하게 느껴질 수 있고, 이는 단순히 물리적 센싱만으로는 정의하기 어려운 문제를 만듭니다. 즉, 후각 정보는 감각 수용체를 통해 센싱된 신호 이상으로, 뇌에서 해석된 의미와 기억, 맥락이 결합된 지각 경험이라 할 수 있습니다.
SmellNet은 이러한 어려움을 극복하기 위해, 주관적인 인간 인식 대신 다양한 상업용 전자코 센서들로부터 수집한 냄새 시계열 데이터를 기반으로 한 대규모 smell recognition 데이터셋을 구축합니다. 이후 이 데이터를 활용해 딥러닝 기반 분류 모델들을 학습하고, 실제로 해당 데이터셋이 유의미한 패턴을 포함하고 있음을 실험적으로 증명합니다. 또한 일부 시료에 대해 GC-MS (Gas Chromatography-Mass Spectrometry) 데이터를 추가로 확보하여, cross-modal contrastive learning을 통해 소량의 고해상도 데이터가 전체 모델 성능을 어떻게 향상시킬 수 있는지도 실증합니다.
이번 포스팅에서는 SmellNet의 전체적인 제안 구조와 실험 흐름, 그리고 contrastive learning 기반 성능 개선 결과까지 자세히 살펴보며, 딥러닝이 후각이라는 영역에서 어떤 가능성을 보여주는지 정리해보겠습니다.
2. 제안 방법
이번 챕터에서는 SmellNet의 제안 방법을 살펴봅니다. 크게 세가지로 나누어 살펴보겠습니다. 먼저 냄새 Classification을 수행하기 위한 실험 세팅 방법을 살펴봅니다. 이어서 이렇게 구축한 데이터셋에 사용한 모델들을 살펴봅니다. 마지막으로 단순 classification이 아닌 contrastive learning 실험은 왜 했는지, 어떠한 의미를 갖는지를 살펴봅니다.
2-1. 실험 세팅
SmellNet의 메인 실험은 냄새 Classification 입니다. 전체 50가지의 물질로 냄새 데이터셋을 구성할거고, 딥러닝 모델들로 이 50가지 종류의 냄새를 classification 하도록 학습할겁니다. 이를 위해서는 50가지 종류 물질의 냄새 데이터를 확보해야 하는데요. 앞서 설명했듯, 사람이 직접 label을 다는 방식은 정합성 측면에서 문제가 있습니다. 동일한 물질이라도 사람마다 느끼는 냄새는 다를테니까요. 이 문제를 해결하기 위해 저자들은 전자코 센서를 활용합니다. 전자코는 기본적으로 금속 산화물 반도체를 사용하여 휘발 물질을 센싱하는 원리입니다. 그런데 제품마다 센싱 범위와 특징이 다르므로, SmellNet에서는 서로 다른 7개의 전자코 제품을 사용합니다. 이렇게 7개의 전자코를 놓고 1Hz 간격으로 약 10분동안 냄새를 맡게 하는거죠. 이렇게 동일한 샘플에 대해 5번 반복 수집을 했습니다.
![['24 NeurIPS] SMELLNET: A Large-scale Dataset for Real-world Smell Recognition 1 그림1. Overview](https://ffighting.net/wp-content/uploads/2025/10/image-28-1024x582.png)
위 그림의 왼쪽은 전자코 하드웨어 구성을 보여주고 있습니다. 서로 다른 방식의 7개의 전자코 센서들이 있고요, 라즈베리파이 컨트롤러로 연결해준 모습입니다. 오른쪽 그림은 총 50여가지의 물질을 보여주고 있습니다. 총 5개의 카테고리에서 다양한 물질들을 사용하여 다채로운 데이터셋을 구성해준 모습입니다.
![['24 NeurIPS] SMELLNET: A Large-scale Dataset for Real-world Smell Recognition 2 그림2. SmellNet data pipeline](https://ffighting.net/wp-content/uploads/2025/10/image-29-1024x469.png)
위 그림은 전체적인 실험 구성을 보여주고 있습니다. 전자코 센서들을 사용하여 50개 물질 각각을 약 10분간 센싱해줍니다. 이 결과 총 600개의 시계열 데이터가 생성됩니다. 이는 클라우드에 저장되고, 이 과정을 5번씩 반복해줍니다. 이후 전처리 과정을 거친 데이터셋은 classification downstream task로 학습하여 실험을 진행합니다.
2-2. 모델 구성
앞서 확인한 것과 같이 이렇게 구축된 전자코 데이터셋은 기본적으로 시계열 데이터에 해당합니다. 이를 Classification 하기 위해서는 시계열을 처리할 수 있는 모델들을 구성해줘야 하는데요. 가장 대표적인 모델로는 LSTM, Transformer가 있습니다. 그리고 추가적으로 Baseline에 해당하는 MLP도 구성해줬습니다.
이번 실험의 주요 목적은 어떠한 모델이 가장 잘 분류하는지를 확인하는것이 아니기 때문에 시계열 분류 모델 중 SOTA 모델들을 많이 가져오진 않은것으로 보입니다.
2-3. Contrastive Learning
오히려 SmellNet의 핵심 내용은 Contrastive Learning 부분이라고 보는데요. Classification은 클래스 label을 사용하여 Cross Entropy Loss로 모델을 학습하는 방식을 말합니다. 반면 Contrastive Learning은 Classification 처럼 Downstream Task 보다는 Pretraining 성격에 더 가까운데요. 서로 다른 모델 또는 정보에 대해 무엇이 같은것이고 다른것인지를 알려주는 방법입니다. Classification 처럼 명확한 정보를 준다기 보다는 막연하게 “얘랑 얘는 같은애고, 얘랑 쟤는 다른 애야” 라고 알려주기에 많은 정보를 갖고 있는 데이터의 Pretraining 으로 적합한 학습 방법이죠.
이번 논문에서는 소수의 가스크로마토그래피 데이터를 활용하기 위해 Contrastive Learning 방법을 사용합니다. 시료의 휘발 성분을 정확하게 분석하기 위해서는 가스크로마토그래피 장비를 사용해야 하는데요. 가스크로마토그래피를 사용하면 휘발되는 거의 모든 분자성분을 센싱할 수 있습니다. 하지만 장비가 굉장히 고가입니다. 애초에 그래서 SmellNet에서는 고가의 가스크로마토그래피 장비로 데이터를 확보하기 어려우니, 저가형 전자코 센서를 사용하여 데이터셋을 구축한겁니다. 그런데 만약 소량의 가스크로마토그래피 데이터가 있다면 어떨까요? 어떻게 하면 이 소량의 고품질 데이터를 활용할 수 있을까요?
SmellNet에서는 이를 활용하기 위해 Contrastive Learning을 사용합니다. 50개의 시료중 일부에 대해서만 가스크로마토그래피를 수행합니다. 그리고 이를 기존 전자코 데이터와 함께 Contrastive Learning 방식으로 학습합니다. 동일한 Banana 시료의 Embedding은 Positive sample이 되어 서로 feature space에서 가까워지도록 학습합니다. 반면 전자코의 banana embedding과 가스크로마토그래피의 tomato embedding은 Negative sample이 되어 feature space 상에서 서로 멀어지도록 학습하는거죠.
3. 실험 결과
이렇게 구성된 방법과 모델들을 활용하여 수행한 실험 결과를 살펴보겠습니다. 먼저 전자코 데이터만을 사용한 50개 냄새 분류 결과를 살펴봅니다. 이어서 Constrastive Learning을 추가했을때 성능이 어떻게 변화했는지 살펴보겠습니다.
3-1. 50 odor classification
![['24 NeurIPS] SMELLNET: A Large-scale Dataset for Real-world Smell Recognition 3 그림3. odor classification](https://ffighting.net/wp-content/uploads/2025/10/image-30-1024x380.png)
위 표는 3개 모델의 50개 냄새 전자코 데이터를 사용하여 Classification을 수행했을때의 성능을 보여주고 있습니다. Absolute 행은 전체 시계열을 입력해준 뒤 맞춘 성능을 의미하구요, FOTD는 시계열을 입력 받으면서 모델이 처음으로 대답한 결과를 기반으로 측정한 성능을 의미합니다. 즉 FOTD는 실시간성 성능이라고 이해하면 되겠습니다.
모델별 성능 비교 자체가 중요한건 아니지만, 역시 Transformer와 LSTM이 MLP 보다 좋은 성능을 보여줍니다. 실시간성 실험에서는 Transformer가 LSTM보다 좋은 성능을 보여주고 있네요.
![['24 NeurIPS] SMELLNET: A Large-scale Dataset for Real-world Smell Recognition 4 그림4. smell PCA](https://ffighting.net/wp-content/uploads/2025/10/image-31-1024x486.png)
위 그림은 전자코로 수집한 데이터의 PCA 결과를 보여주고 있는데요. 제법 종류별, 재료별로 잘 분리되어있는 모습을 볼 수 있습니다. 이를 통해 전자코 센서만으로도 충분히 각 재료별 냄새의 특징을 잘 수집할 수 있다는건 알 수 있습니다.
3-2. contrastive learning
이번에는 Contrastive Learning을 추가한 실험 결과를 살펴보겠습니다.
![['24 NeurIPS] SMELLNET: A Large-scale Dataset for Real-world Smell Recognition 5 그림5. Contrastive learning 실험 결과](https://ffighting.net/wp-content/uploads/2025/10/image-32-1024x401.png)
위 그림은 Contrastive Learning 실험 결과를 정리한 표입니다. 총 세가지 행이 존재하는데요. 첫 번째 No GC-MS는 순수하게 전자코 데이터만 사용하여 supervised learning을 수행한, baseline 실험에 해당합니다. 두 번째 GC-MS Pred는 가스크로마토그래피 데이터만을 사용하여 동일한 실험을 수행한 결과를 의미합니다. 세 번째 GC-MS CL은 메인 실험인 가스크로마토그래피 데이터를 활용하여 Contrastive Learning을 수행한 성능을 의미합니다.
모델은 MLP 모델을 사용했는데요. 기존의 Absolute Top1 ACC가 11% 수준이었는데, 소량의 데이터만 있는 가스크로마토그래피 데이터만을 사용할때는 7% 수준 ACC로 더 떨어지는 모습입니다. 반면 Contrastive Learning을 추가하게 되면 60%에 가까운 ACC 성능을 보여주고 있습니다. 이를 통해 소량의 가스크로마토그래피를 Contrastive Learning으로 추가 학습해주게 되면 엄청난 성능 향상이 있음을 알 수 있습니다.
4. 마치며
SmellNet 논문은 후각이라는 비정형적이고 주관적인 감각을 딥러닝 학습이 가능한 형태로 정량화하고자 하는 시도에서 출발합니다. 기존에는 사람이 직접 표현하거나 소수의 정제된 장비로 분석해야 했던 냄새 데이터를, 상용 전자코 센서를 활용해 대규모 시계열 데이터셋으로 구축했다는 점에서 큰 의미가 있습니다.
무엇보다도 이 데이터셋은 단순 수집에 그치지 않고, 실제로 LSTM, Transformer 모델 등의 학습을 통해 냄새 클래스 간 구분 가능성(class separability)이 존재함을 실험적으로 입증합니다. 또한 일부 시료에 대해 GC-MS 데이터를 수집하고, 이를 contrastive learning 방식으로 학습에 결합함으로써 고해상도 데이터의 제한된 샘플도 모델 성능 향상에 기여할 수 있음을 보여줍니다.
이 논문은 후각 인식을 위한 foundation model 개발 가능성의 실마리를 제공하며, 앞으로 음식 기술, 향수 설계, 환경 모니터링, IoT 등의 다양한 응용 분야에서 smell AI의 활용 가능성을 열어줍니다. 시각이나 언어보다 훨씬 늦은 출발이지만, 이번 SmellNet을 기점으로 딥러닝 기반 후각 연구가 본격적으로 확장될 수 있는 출발점이 마련되었다고 볼 수 있겠습니다.
![['24 NeurIPS] SMELLNET: A Large-scale Dataset for Real-world Smell Recognition 6 Aragon Headshot Jongyub Seok 26](https://ffighting.net/wp-content/uploads/2025/10/Aragon-Headshot-Jongyub-Seok-26.jpg)


![['17 Nucleic Acids Research] FlavorDB: a database of flavor molecules 13 flavorDB](https://ffighting.net/wp-content/uploads/2025/10/image.png)
![['17 CVPR] Learning Cross-modal Embeddings for Cooking Recipes and Food Images 14 Im2Recipe Model](https://ffighting.net/wp-content/uploads/2025/10/image-1-1024x328.png)