dev_AI_framework
비용 함수 계산 그래프 부분 문제 해결
명징직조지훈
2025. 4. 26. 16:25
각 모델의 출력 유닛의 개수에 따라 비용 함수의 계산 그래프 모양이 바뀜,
출력 유닛들을 연결한 모양으로 출력층의 유닛 개수, n 의 개수에 따라 leaf_node_list 들이 바뀌어야 됌,
그리고 출력층까지의 계산 그래프 모양과의 연결은, 비용 함수의 y_pred 의 값과 연결로 leaf_node_list 엔 y_target 값이 포함되어선 안됨,
# ✅ MSE 계산 그래프
def build_mse_node(num_outputs):
"""
MSE = mean( sum( (y_true_i - y_pred_i)^2 ) )
🔹 계산 그래프 구조 (num_outputs = 3 예시)
[mean]
│
[sum]
/ | \
[square][square][square]
│ │ │
[subtract][subtract][subtract]
/ \ / \ / \
[const][const] ...
(y_true y_pred)
"""
square_nodes = []
for _ in range(num_outputs):
y_true_node = Node("const")
y_pred_node = Node("const")
sub_node = Node("subtract")
sub_node.add_child(y_true_node)
sub_node.add_child(y_pred_node)
square_node = Node("square")
square_node.add_child(sub_node)
square_nodes.append(square_node)
sum_node = Node("sum")
for node in square_nodes:
sum_node.add_child(node)
mean_node = Node("mean")
mean_node.add_child(sum_node)
leaf_nodes = [sq.children[0].children[1] for sq in square_nodes]
return mean_node, leaf_nodes
각 비용 함수의 정해진 형태에 따라, 그 모양이나 형태의 일반화, leaf_node 들의 지정을 수행,