3가지 흔히 볼 수 있는 이미지 분할 손실 함수
내가 보기에 깊이 있는 학습이 컴퓨터 시각 분야에 미치는 영향은 그 어느 분야보다도 크다.지난 5년 동안 avariety of techniques를 사용하여 각 분야에서 여러 가지 혁신을 했다.이미지 분할은 픽셀급의 분류 임무로 여겨질 수 있지만 분할 임무의 손실 함수의 선택은 기계 학습 모델의 수렴 속도를 결정하고 어느 정도에 모델의 정밀도를 결정하는 관건이다.
감독 훈련 과정(표시된 데이터에서 학습)에서 손실 함수는 모델에 피드백을 제공하고 피드백은 어느 정도에 가장 좋은 모델 매개 변수에 수렴되는지 피드백한다.이것은 입력 데이터를 출력 데이터(이미지가 분할된 경우 이미지가 마스크에 매핑됨)에 매핑하는 "이상"근사값 검색을 안내하는 데 사용됩니다.
This review paper from Shruti Jadon (IEEE Member)는 손실 함수를 분포에 기초한 손실, 지역에 기초한 손실, 경계에 기초한 손실과 복합 손실로 네 가지로 나눈다.이 블로그 글에서 나는 세 가지 더 자주 사용하는 의미 이미지 분할 손실 함수인 2진법 교차 엔트로피 손실, 주사위 손실과 형상 감지 손실을 중점적으로 소개할 것이다.
이원 교차 엔트로피
교차 엔트로피는 두 확률 분포 간의 차이를 측정하는 데 쓰인다.이것은 랜덤 이벤트의 한 분포가 다른 분포와 얼마나 가까운지 판단하고 분류(더 일반적인 의미에서)와 분할에 사용되는 유사성 도량으로 사용된다.
따라서 이원교차엔트로피(BCE) 손실은 실제 이미지 마스크와 예측 이미지 마스크 사이의 정보 함량 차이를 측정하려고 한다.그것은 더욱 보편적으로 베누리 분포를 바탕으로 클래스 간의 데이터 분포가 같을 때 효과가 가장 좋다.다시 말하면 BCE는 매우 심각한 분류 불균형을 가진 이미지 마스크(예를 들어 X선 이미지에서 매우 작고 보기 드문 종양을 발견)를 충분히 평가할 수 없을 것이다.
이는 BCE가 이미지 마스크의 양수(1)와 음수(0) 견본을 동등하게 처리했기 때문이다.주어진 대상(예를 들어 위의 첫 번째 이미지의 자동차)과 이미지의 나머지 부분의 픽셀 분포가 고르지 않을 수 있기 때문에 BCE 손실은 깊이 있는 학습 모델의 성능을 효과적으로 대표하지 못할 수 있다.
이원 교차 엔트로피는 다음과 같이 정의된다.
L(y,y^)=−이로그(y^)−(1−y) 로그(1)−y^)
L(y,hat{y})=-y\log(\hat{y})-(1-y)log(1-\hat{y})
L(y,y)^)=−YLG(y)^)−(1−y) 로그(1)−y^)
수학 기호의 빠른 시작:
yyy
대상 이미지 분할 마스크
y^\hat{y}y^
우리의 심도 있는 학습 모델에 따라 손실은 우리가 원하는 것 사이의 차이를 평가한다(
yyy
) 모형이 우리에게 무엇을 주었는지(
y^\hat{y}y^
)
이것은TensorFlow
keras.losses
패키지에서 이미 실현되었기 때문에 이미지 분할 모델에서 쉽게 사용할 수 있다.바닐라 BCE의 개편은 가중 BCE로 일부 계수를 통해 픽셀을 가중시킨다.그것은 의학 영상 (기타 데이터 집합이 고도로 기울어진 분야) 에 대량으로 사용된다.정의는 다음과 같습니다.
L(y,y^)=−β-ylog(y^)−(1−y) 로그(1)−y^)
L(y,hat{y})=-\beta y\log(\hat{y})-(1-y)log(1-\hat{y})
L(y,y)^)=−β-ylog(y)^)−(1−y) 로그(1)−y^)
이것
β\β
매개 변수는 조정할 수 있다. 예를 들어 가짜 음성 픽셀의 수량을 줄이기 위해
β> 1β>1β>1
, 오보 수를 줄이기 위해 설정
β<1\β<1β<1
주사위 던지기 계수
이것은 연합 계발식과 비슷한 이미지 간의 유사성을 계산하는 데 광범위하게 사용되는 손실이다.따라서 주사위 계수는 주사위 손실의 손실 함수에 적용된다.
DL(y,y^)=1−2yy^+1y+y^+1
DL(y,hat{y})=1-\frac{2y\hat{y}+1}{y+\hat{y}+1}
DL(y,y)^)=1−y+y^+12yy^+1
흔히 볼 수 있는 비판은 검색 공간의 성질이 비뚤어져서 주사위 손실을 L-BFGS와 무작위 사다리 하락 등 방법으로 풀기 쉽도록 수정되었다.TensorFlow에서는 주사위 분실을 하위 클래스화
tf.keras.losses
로 수행할 수 있습니다. 다음과 같습니다.class DiceLoss(tf.keras.losses.Loss):
def __init__(self, smooth=1e-6, gama=2):
super(DiceLoss, self).__init__()
self.name = 'NDL'
self.smooth = smooth
self.gama = gama
def call(self, y_true, y_pred):
y_true, y_pred = tf.cast(
y_true, dtype=tf.float32), tf.cast(y_pred, tf.float32)
nominator = 2 * \
tf.reduce_sum(tf.multiply(y_pred, y_true)) + self.smooth
denominator = tf.reduce_sum(
y_pred ** self.gama) + tf.reduce_sum(y_true ** self.gama) + self.smooth
result = 1 - tf.divide(nominator, denominator)
return result
형상 감지 손실
The U-Net paper 모든 지면의 진가 픽셀에 대해 미리 계산된 권중도를 사용하여 그들이 완전히 연결된 권적 네트워크로 하여금 작은 분리 경계를 학습하게 한다.훈련 데이터가 특정 유형의 픽셀에 집중되는 주파수를 보상하고 형태학 연산을 이용해 계산하기 위해서다.가중치는 다음과 같이 계산됩니다.
w(x)=wc(x)+w0e−(d1(x)+d2(x))22σ2
w(\bold{x})=w_c(\bold{x})+w_0 e^{-\frac{
(d_1(\bold{x})+d_2(\bold{x}))^2}{2\sigma^2}
w(x)=wc(x) +w0e−2σ2(d1)(x) +d2(x) )2
이것
d1d_1d1
및
d2d_2d2
함수는 가장 가까운 칸과 두 번째 가장 가까운 칸의 거리를 보여 줍니다.
wcw_cwc
카테고리 분포에 따라 이미지의 객체 인스턴스에 대한 카테고리 가중치를 수동으로 조정합니다.
그 다음에 전형적인 교차 엔트로피 손실에서 이 항목을 사용하면 다음과 같은 손실 함수를 얻어낼 수 있다.
L(y,y^)=−w(x)×[ylog(y^)+(1)−y) 로그(1−(p^)]
L(y,hat{y})=-w(\bold{x})회\left[y\log(\hat{y})+(1-y)\log(1-\hat{p})\right]
L(y,y)^)=−w(x)×ylog(y)^)+(1−y) 로그(1)−p^)]
Reference
이 문제에 관하여(3가지 흔히 볼 수 있는 이미지 분할 손실 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/_aadidev/3-common-loss-functions-for-image-segmentation-545o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)