Selfish mining attacks sabotage the blockchain systems by utilizing the vulnerabilities of consensus mechanism. The attackers' main target is to obtain higher revenues compared with honest parties. More specifically, the essence of selfish mining is to waste the power of honest parties by generating a private chain. However, these attacks are not practical due to high forking rate. The honest parties may quit the blockchain system once they detect the abnormal forking rate, which impairs their revenues. While selfish mining attacks make no sense anymore with the honest parties' departure. Therefore, selfish miners need to restrain when launch selfish mining attacks such that the forking rate is not preposterously higher than normal level. The crux is how to illustrate the attacks toward the view of honest parties, who are blind to the private chain. Generally, previous works, especially those using Markov decision processes, stress on the increment of attackers' revenues, while overlooking the detection on forking rate. In this paper, we propose, to maintain the benefit from selfish mining, an improved selfish mining based on hidden Markov decision processes (SMHMDP). To reduce the forking rate, we also relax the behaviors of selfish miners (also known as semi-selfish miners), who mine on the private chain, to mine on public chain with a small