기존 생성형 AI를 이용하여 악보 생성 프로젝트에 진척 사항이 별로 없기 때문에 우선적으로 LSTM를 이용한 악보 생성 프로젝트를 구상해 보았음.
- 음악 데이터 준비:
- MIDI 파일로 된 클래식 음악 로드 ->
load_midi_files
- 이 음악 파일들에서 음표 정보 추출 ->
extract_notes
- MIDI 파일로 된 클래식 음악 로드 ->
- 데이터 가공:
- 추출한 음표들을 컴퓨터가 이해할 수 있는 숫자 형태로 변환
- 음악의 패턴을 학습하기 위해 음표들을 일정 길이의 시퀀스로 나눔
- └─
preprocess_data
- 인공지능 모델 작성:
- LSTM 신경망을 사용해 모델 작성
- 이 모델은 음악의 패턴을 학습하는 데 특화
- └─
create_model
: LSTM(Long Short-Term Memory), 장단기 메모리
긴 시퀀스의 데이터에서 장기적인 패턴을 기억하고 활용 가능하며, 음악 생성 부문에서는 음표 간의 관계 파악, 음악 스타일 유지, 음표 예측 등 변화 패턴을 인식
- 모델 학습:
- 준비한 데이터로 모델 학습
- 학습 과정에서 모델은 음악의 구조와 패턴을 이해
└─train_model
- 음악 생성:
- 학습된 모델에 짧은 음악 시퀀스를 제공
- 모델은 시퀀스 바탕으로 새로운 음표들을 예측하며 멜로디 작성
- 결과 확인:
- 생성된 멜로디의 길이를 확인
- 학습 과정의 손실(loss) 그래프를 그려 모델의 학습 상태를 시각화
초기 : 그래프 시작 부분에서 loss가 매우 높은 값(약 10)에서 급격히 떨어지는데, 이는 모델이 초기에 빠르게 학습하고 있음.
안정기 : 약 0에서 1000 Epoch까지 loss가 2.5 근처에서 안정적으로 유지되는 기간 동안 모델이 점진적으로 학습하고 있지만, 큰 개선은 없음.
점진적 감소: 1000 Epoch 부근에서 loss가 서서히 감소하기 시작. 이는 모델이 데이터의 더 미묘한 패턴을 학습하고 있음을 의미.
급격한 개선: 약 1300 Epoch에서 loss가 급격히 감소. 이는 모델이 중요한 패턴을 발견했거나 학습률 조정 등의 최적화가 효과를 발휘한 것일 수 있음.
최종 : 1500 Epoch 이후부터 그래프 끝까지 loss가 매우 낮은 수준에서 안정화됨. 이는 모델이 최적의 상태에 도달했음을 나타냄.
반응형
'미니 프로젝트 > SCOGEN' 카테고리의 다른 글
[4] Keras h5 모델 저장 형식 변경 (0) | 2024.09.21 |
---|---|
[3] 악보 생성 성공 및 해결 사항 (0) | 2024.09.02 |
[1] 뇌세포 들썩들썩! 스터디의 맛에 빠지다 (0) | 2024.08.12 |