Your markup is invalid. Try this instead
<div class="welcome_box">
<div>
<p>test</p>
<small>text</small>
</div>
</div>
Now you can achieve this with either CSS or Javascript. For CSS you could use a keyframe animation. You may need to play with the percentages and the timing. I figure 5s x 4 images so I put 20s but I'm not sure if you want to stay longer on each image and make the transition 5s.
.welcome_box div
{
animation: myfirst 20s;
-webkit-animation: myfirst 20s; /* Safari and Chrome */
}
@keyframes myfirst
{
0% {background: url(image_1) 0 0 no-repeat; opacity:1;}
9% {background: url(image_1) 0 0 no-repeat; opacity:0;}
18% {background: url(image_2) 0 0 no-repeat; opacity:0;}
36% {background: url(image_2) 0 0 no-repeat; opacity:1;}
45% {background: url(image_2) 0 0 no-repeat; opacity:0;}
54% {background: url(image_3) 0 0 no-repeat; opacity:0;}
63% {background: url(image_3) 0 0 no-repeat; opacity:1;}
72% {background: url(image_3) 0 0 no-repeat; opacity:0;}
81% {background: url(image_4) 0 0 no-repeat; opacity:0;}
90% {background: url(image_4) 0 0 no-repeat; opacity:1;}
99% {background: url(image_4) 0 0 no-repeat; opacity:0;}
}
@-webkit-keyframes myfirst /* Safari and Chrome */
{
0% {background: url(image_1) 0 0 no-repeat; opacity:1;}
9% {background: url(image_1) 0 0 no-repeat; opacity:0;}
18% {background: url(image_2) 0 0 no-repeat; opacity:0;}
36% {background: url(image_2) 0 0 no-repeat; opacity:1;}
45% {background: url(image_2) 0 0 no-repeat; opacity:0;}
54% {background: url(image_3) 0 0 no-repeat; opacity:0;}
63% {background: url(image_3) 0 0 no-repeat; opacity:1;}
72% {background: url(image_3) 0 0 no-repeat; opacity:0;}
81% {background: url(image_4) 0 0 no-repeat; opacity:0;}
90% {background: url(image_4) 0 0 no-repeat; opacity:1;}
99% {background: url(image_4) 0 0 no-repeat; opacity:0;}
}
The other route using javascript, there are many options but the easiest thing to do is use an existing carousel plugin. This was the first one I found that had automatic fadein http://malsup.com/jquery/cycle/int2.html