- 32x32 블록으로 2차원 DCT(디스크릿 코싸인 변환) 변환한 이미지입니다.
- 물론 당근 그레이스케일 이미지죠. 그래야 푸리에변환(DCT)이 되니까요.
- JPEG 이미지 압축할때 많이 쓰는 방법이죠.
- 이미지를 이렇게 블록DCT 변환한 이미지들을 CNN에 입력해서 딥러닝학습하면 이미지 분류가 될까요? 안될까요?
여러분들 생각은요?
딥러닝 입력으로 JPG이미지를 입력한다는건..
DCT압축해서 디코딩한 걸 다시 압축해제해서
이미지로 복원후 입력하는걸 말합니다.
그렇다면 압축해제 하지않고 부호화된 데이타 자체를
딥러닝에 넣어도 학습이 되는지를 묻는 질문인 것입니다.
드..들켰군요
축하합니다.
월급쟁이 시군요
그럼 블록격자를 8x8 처럼 더 촘촘히 하면요?
그에 맞는 네트웍은 어디있나요?
링크좀 ~
DCT압축해서 디코딩한 걸 다시 압축해제해서
이미지로 복원후 입력하는걸 말합니다.
그렇다면 압축해제 하지않고 부호화된 데이타 자체를
딥러닝에 넣어도 학습이 되는지를 묻는 질문인 것입니다.
당삼 빠떼루~
가만히 있어야겠단ㅋㅋ
"심층 신경망 자체가 푸리에 연산을 수행할 수 있어서" <- 저랑 같은 생각을 하시는군요.
근데 그렇다면 오히려
더 얕은 신경망이 유리하지 읺을까요? 아니면 아예 MLP만?
이미 푸리에변환으로 피쳐추출이 된 상태이니 말이죠..
homo-morphic (준동형)말씀이군요?
압축방식은 dct에 한해서일때 궁금합니다.
리딕처럼 퓨리아 출신이죠.
가슴에서 빛이 번쩍~
그럭저럭 되긴했습니다만 같은 하드웨어가 주어진다면 좋다고 못하겠습니다.
스펙트로그램 음성인식 말인가요?
그건 1차원을 푸리에로 이미지로 만드는 거라서
약간 다르긴 합니다..
이론적으론 1차원이 되면 2차원도 되긴하죠. 그게 효율적인질 떠나서요.
1차원 오디오가 2차원 이미지가 되면 딥러닝이 된다면
2차원 이미지는 3차원볼륨이 되어야
딥러닝이 되는건 아닐까요?
2차원to2차원 푸리에데이타는 딥러닝이 안되는 이유는 무엇일까요?
답이 없는 거라서
아질게는 아닌듯 합니다..
이미지를 동일하게 DCT 변환하여 CNN에 넣는다면
학습이 됩니다
답이 없는 거라서
아질게는 아닌듯 합니다..
콘브넷 레이어들은 FIR을 넘어서서 훨 일반적인 필터를
학습으로 만들어내는 거 아닌가요?
다른 특징레이어는 무엇을 말하시나요?
다 찾아본 것들입니다.
기억을 떠올려주세요.
증명은 했는데
여백이 없어서 증명식을 못남긴거랑 같은 경우군요... --;
교수님이 이번엔 졸업시켜준대요?... 군대 보내버린다는 소문이 있던데요....
대충 이런 댓글로 아름답게 넘어가자...
교수에게 개기고도 졸업 잘했던 사람이지요.
개겼던 동기들이 오히려 더 존데로 취업했었다는..
아, 옛날이여~
왜 그렇게 생각 하셨나요?
학습하는 것이 낫지 않을까 합니다.
음...
하지만 어텐션이 너무 스파스하게
산재되어 나타나지 않을까요?
어텐션은 곧 로컬한 집중 아니던가요?
푸리에 변환이라고 해봐야 사실 선형변환이고 정규화항만 잘 설정하면 Orthonormal Matrix로 표현할 수 있기도 하고,
RGB 입력을 컬러 스페이스만 바꿔서 YCbCr로 입력하는 것도 선형변환인데 네트워크는 잘 동작하는 것처럼 커널은 잘 학습될 거에요.
결론은 "문제없이 동작한다"입니다. 그게 효율적일지 비효율적일지는 응용 문제에 따라 다를 것이라 생각합니다.
그렇죠? 저도 그렇게 생각합니다.
...
그런데 해보면 안됩니다.
해보시면 압니다.
이유가 뭘까요?
이미지-FFT-CNN-IFFT-이미지 순으로 했는데 학습이 안 된다구요?
Super Resolution 같은데서는 잘 동작하는데...
이미지-FFT-CNN-IFFT-이미지
처럼 출력으로 이미지가 나오는게 아니고
출력은 분류결과인 분류망 학습의 경우 말입니다.
일반화 학습이 안됩니다.
valid_loss 가 안줄어요.
분류 문제라면 기존의 CNN이 특징 추출시 고주파수 영역에 더 집중한다는 점에 착안해서 고주파수 영역에 집중하도록 하는 연산을 넣으면 어떨까요?
SR이 솔루션이 여러개인 문제라서 분류 문제보다 해결하기 쉬운 케이스는 아닌 것 같아서요 ㅜ.ㅜ
그런데 입력 데이터를 DCT로 변환해버리면 애초에 CNN이 생각했던 "이미지"라는 성질을 잃어버릴 것 같습니다. 물론 'DCT 결과를 또 다른 "이미지"라고 보고 CNN이 pattern을 찾는다고 생각하면 되지 않냐'가 질문일 것 같은데요. 제 생각에 DCT 결과는 locality가 떨어져서 receptive field가 엄청 커야 할 것 같습니다. kernel size가 커지거나 신경망이 더 deep 해지거나요. 그에 따라서 효율이 떨어지거나 학습이 잘 안되고 하는 문제가 생길 것 같고요.
저 위에 제가 단 댓글에 convolution이 아닌 다른 operator를 언급한 것도 비슷한 이유에서 입니다. 데미로바토님께서 말씀하시는 연산 같은 것도 답이 될 수 있을 것 같고요.
receptive field가 엄청 크다는건
VGG나 Alexnet 같은 망을 말하는 건가요?
resnet152로 해도 안되는거 보면
딥한망도 소용없는거 같습니다만...
wide_resnet 으로 안되더라니까요~
많은 부분을 잘라버리는 거죠.
손실압축 입니다.
다만 여기에 각 데이터의 확률 분포를 이용한 허프만 코딩을 통해 무손실 압축을 해서 용량을 줄일 수 있고...
데이터의 확률 분포를 좀 더 0 방향으로 집중시키기 위하여 양자화(quantization)을 적용하는데(이 부분에서 손실 발생), 양자화를 적용할 때 사람 눈이 high freq 성분에 덜 민감하단걸 이용해서 high freq 정보를 더 심하게 버리게 되면 정보량이 주는거대비 눈으로 봤을때의주관적 화질은 크게 떨어지지 않는 결과를 보입니다.
해봐야 알겠지만 저는 될 것 같아요
다만 상황에 따라서 domain generalization이나 self-supervised쪽까지 곁들여서 해봐야될거같아요
단데레2x ?
이건 와이푸2x의 비디오 버전 인가요?
DCT matrix 를 써서 고속연산화 한것인가요?
큰 이미지에 DCT한번 하는거 보다.
DCT매트릭스로 하면 훨 빠르건든요..
DCT와는 전혀 관계가 없지만 하나의 이미지가 아니라 서로 이어지지 않는 (경계가 뚜렷한) 조각들을 이어붙인데 CNN에 입력으로 들어간다는 점이 본문의 상황과 비슷한점이 있는것 같아서 가져왔어요.
그런데 해보면 안됩니다.
이유를 규명하시면
딥러닝의 비밀이 열립니다.
콘브넷(CNN) 은 딥러닝의 꽃이거든요.
공간도메인과 푸리에도메인간의 불확정성 때문일까요?
실수가 아닌 복소수를 사용하는
새로운 딥러닝망이 필요한 걸까요?
JPG DCT가 8x8단위이니, pooling을 DCT 단위로 한다든가. 예를 들어 8x8 DCT를 2개 당 1개만 하는 식으로 한다거나.....
그럼 블럭단위가 아닌 이미지 전체를 DCT해버리면
일반적 콘브넷으로 학습이 된다는 이야기 같습니다만...