AI CONNECT Fake or Real ์์ฑ์ด๋ฏธ์ง ํ๋ณ ๊ฒฝ์ง๋ํ 9์ ๊ตฌํ ์ฝ๋ ์
๋๋ค.
๋ค์ํ ์์ฑ ๋ชจ๋ธ๋ก ์ธํด ์์ ์๋ณ์กฐ์ ๋ฌธ์ ๊ฐ ๋๋๋๋ ์ํฉ ์์์ ์์ฑ AI๊ฐ ๋ง๋ค์ด๋ธ ๊ฐ์ง(Fake) ์ด๋ฏธ์ง์ ์ง์ง(Real) ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๋ ๋ฌธ์ ์
๋๋ค.
๋ค์ํ ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ณด์์ผ๋, ์ต์ข
์ ์ผ๋ก Efficient Net์ ์ฌ์ฉํ์์ต๋๋ค.
Train data์ ๋ํ์ฌ overfitting์ด ์ฌํ์๊ณ , ๋ณด๋ค ๋ณต์กํ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ์ overfitting ์คํ๋ ค ์ฌํ๊ฒ ํ ๊ฒ์ด๋ผ ํ๋จํ์๊ธฐ์, ํจ์จ์ ์ผ๋ก ํ์ต์ ์งํํ ์ ์๋ Efficient Net์ ๊ธฐ๋ฐ์ผ๋ก ์งํํ์์ต๋๋ค.
Validation์์ accuracy, f1 score ๋ชจ๋ 99%์ ์ก๋ฐํ์ง๋ง, ์ ์ถ์์ f1 score๊ฐ 70๋ก ๊ฐ์ํ๋ ์ํฉ์ด์๊ธฐ์ Overfitting์ ํด๊ฒฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ํ๋จ, ๊ฐ์ฅ ํ์คํ ๋ฐฉ๋ฒ์ด Data Augmentation์ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ํํ์์ต๋๋ค.
๋ณธ ๋ํ๋ ํน์ดํ๊ฒ๋ ์ธ๋ถ ๋ฐ์ดํฐ๊ฐ ํ์ฉ๋์ด์๋ ๋ํ์๊ธฐ์ ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทน ํ์ฉํ๊ธฐ๋ก ํ์์ต๋๋ค. Kaggle์์ Dalle, Midjourney, Stable Diffusion ๋ชจ๋ธ๋ค์ ๊ฐ๊ฐ 1000์ฅ, 2000์ฅ, 2000์ฅ ๋ฝ์์ ์ถ๊ฐํ์๊ณ (์ด๋ค ์์ฑ๋ชจ๋ธ์ ์ฌ์ฉํ์๋์ง ๋ชฐ๋๊ธฐ์, ๋๋๋ก ๊ณ ๋ฅด๊ฒ ์ฌ์ฉํ์๊ณ , Dalle Dataset์ ํ๋ฆฌํฐ๊ฐ ์ข์ง ๋ชปํด ๋น์ค ์ถ์.), Image Net์์ ์ค์ ๋ฐ์ดํฐ๋ฅผ 5000์ฅ ์ถ๊ฐ ํ์ฌ ๋ฐ์ดํฐ ์ฆ๊ฐ์ ์งํํ์์ต๋๋ค(Train set์์ Fake : real ๋น์จ์ด 1:1).
Torchvision์ transforms function์ ํ์ฉํ์ฌ ๊ธฐ์กด๋ฐ์ดํฐ์, ์ธ๋ถ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ๋ก ์ฆ๊ฐํ์์ต๋๋ค. Albumentations ๋ชจ๋์ ๋ง์ด ์ฌ์ฉํด ๋ณด์๊ธฐ์ Torchvision ์์ฒด์ ํจ์๋ฅผ ํ์ฉํด ๋ณด์์ต๋๋ค. Filp, Rotation, ColorJitter, Crop๋ฑ์ ๋ค์ํ๊ฒ ํ ์คํธ ํด ๋ณด์๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์๋ 3๊ฐ์ง ์ฆ๊ฐ์ ํ์ฉํ์์ต๋๋ค.
self.transforms = transforms.Compose([
transforms.ToTensor(),
transforms.Resize((224,224)),
transforms.Normalize([0.485, 0.456,0.406],[0.229,0.224,0.225])
])
self.transforms = transforms.Compose([
transforms.ToTensor(),
transforms.Resize((256,256)),
transforms.RandomCrop(200),
transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2),
transforms.RandomRotation(30),
transforms.Resize((224, 224)),
transforms.Normalize([0.485, 0.456,0.406],[0.229,0.224,0.225])
])
self.transforms = transforms.Compose([
transforms.ToTensor(),
transforms.Resize((256,256)),
transforms.RandomCrop(224),
transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2),
transforms.RandomHorizontalFlip(p = 1),
transforms.RandomRotation(15),
transforms.Resize((224, 224)),
transforms.Normalize([0.485, 0.456,0.406],[0.229,0.224,0.225])
])
์ต์ข ์ ์ผ๋ก๋ ๋ค์ํ ๋ชจ๋ธ๋ค์ ๋ํ์ฌ ensemble์ soft vote ๋ฐฉ์์ผ๋ก ์งํํ์ฌ ์ฑ๋ฅ์ ์ต๋ํ ๋์ด ์ฌ๋ ธ์ต๋๋ค. Train Set์ ์ด๋ฏธ์ง์ size๊ฐ ๋ค์ํ๊ธฐ์, ๋ค์ํ size๋ก ํ์ตํ ๋ชจ๋ธ๋ค์ ์์๋ธ ํ๋ฉด ๋ ์ข์ ์ฑ๋ฅ์ ์ป์ ๊ฒ์ด๋ผ๊ณ ํ๋จํ์๊ณ , ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ๋ค๋ฅด๊ฒ ํ์ฌ ํ์ตํ ๋ชจ๋ธ๋ค์ค ์ฑ๋ฅ์ด ์ข์ ๋ค์ฏ๊ฐ๋ฅผ ์ ํํ์ฌ ์์๋ธ์ ์งํํ์์ต๋๋ค. (224x224, 256x256 , 456x456)