개발 및 실험
‘문제 정의 및 이해’ 단계에서 무엇을 할지 정했다면, 다음은 이를 구현해 결과를 만드는 ‘개발 및 실험’ 단계입니다. 만약 ‘개발 및 실험’ 단계를 시작할 때 어디서부터 시작해야 할지 감이 오지 않는다면 반드시 이전 단계로 되돌아가야 합니다. 이전 단계에서 무엇을 개발해야 할지 제대로 구체화하지 못했다는 뜻이기 때문입니다. 문제 정의의 내용이 너무 크고 추상적으로 설정된 경우에도 비슷한 문제가 발생할 수 있습니다. 앞서 설명한 대로 현재 나에게 부족한 점을 정리하고, 간단한 하위 문제로 작게 쪼개서 정리해보면 구현하는 데 도움이 많이 될 것입니다.
이제 문제 해결 방법을 찾고 이를 실제로 구현하여 결과를 만들어봅니다. 이 과정에서 갈림길이 여러 번 등장하는데, 이때도 ‘문제 정의 및 이해’ 단계에서 정한 내용들이 필요합니다.
앞서 예시로 들었던 한자 인식기를 생각해보면, 특정 클래스의 데이터가 부족하니 데이터 증강(Augmentation) 관점에서 어떤 것을 선택할지 생각하게 됩니다. 예를 들어 한자 입력이 가능한 폰트를 여러 개 활용해서 이미지를 만드는 방법을 생각하는 식입니다. 뿐만 아니라 EDA에서 확인했을 때 주어진 데이터의 이미지가 약간 회전된 경우가 있다거나, 이미지의 배경 색깔이 여러 가지로 분포한다는 등의 사실이 있다면 이에 따른 데이터 증강 기법을 적용해볼 수 있습니다.